'use strict';
var aa, ba, ca, ea, ga, ha, ia, ja, la, ma, na, oa, pa, qa, ra, sa, ta, va, wa, xa, ya, za, Aa, A, Ca, Da, Ea, Fa, Ga, D, Ha, Ja, La, Ma, Na, Oa, Pa, Qa, Ra, Sa, Ta, Ua, Wa, Xa, Ya, $a, ab, bb, cb, db, eb, fb, gb, hb, kb, lb, mb, nb, ob, pb, qb, rb, sb, tb, ub, vb, wb, xb, yb, zb, Ab, Db, Eb, Fb, Gb, Hb, Ib, Jb, Kb, Lb, Mb, Nb, Ob, Pb, Qb, Rb, Wb, Xb, Yb, Zb, $b, ac, bc, cc, dc, ec, fc, gc, hc, ic, jc = {};
"function" !== typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === typeof "test".__proto__ ?
function(h) {
    return h.__proto__
}: function(h) {
    return h.constructor.prototype
}); (function() {
    function h(a, b, g, e) {
        this.set(a, b, g, e)
    }
    function f() {
        this.Ob = this.Nb = this.Qb = this.Pb = this.$b = this.Zb = this.tb = this.sb = 0
    }
    function d(a, b, g, e) {
        a < b ? g < e ? (w = a < g ? a: g, M = b > e ? b: e) : (w = a < e ? a: e, M = b > g ? b: g) : g < e ? (w = b < g ? b: g, M = a > e ? a: e) : (w = b < e ? b: e, M = a > g ? a: g)
    }
    function n() {
        this.items = this.Ac = null;
        this.Mi = 0;
        T && (this.Ac = new Set);
        this.Oh = [];
        this.hf = !0
    }
    function q(a) {
        v[H++] = a
    }
    function p() {
        this.na = this.Gh = this.y = this.Rf = 0
    }
    function r(a) {
        this.Eb = [];
        this.Sj = this.Uj = this.Vj = this.Tj = 0;
        this.tj(a)
    }
    function a(a, b) {
        this.ym = a;
        this.xm = b;
        this.cells = {}
    }
    function b(a, b) {
        this.ym = a;
        this.xm = b;
        this.cells = {}
    }
    function c(a, b, g) {
        var e;
        return C.length ? (e = C.pop(), e.bn = a, e.x = b, e.y = g, e) : new ba(a, b, g)
    }
    function g(a, b, g) {
        this.bn = a;
        this.x = b;
        this.y = g;
        this.Jb = new ca
    }
    function e(a, b, g) {
        var e;
        return t.length ? (e = t.pop(), e.bn = a, e.x = b, e.y = g, e) : new ea(a, b, g)
    }
    function k(a, b, g) {
        this.bn = a;
        this.x = b;
        this.y = g;
        this.Jb = [];
        this.dh = !0;
        this.ge = new ca;
        this.Wh = !1
    }
    function l(a, b) {
        return a.Td - b.Td
    }
    ga = function(a) {
        window.console && window.console.log && window.console.log(a)
    };
    ha = function(a) {
        window.console && window.console.error && window.console.error(a)
    };
    aa = function(a) {
        return a
    };
    ia = function(a) {
        return "undefined" === typeof a
    };
    ja = function(a) {
        return "number" === typeof a
    };
    la = function(a) {
        return "string" === typeof a
    };
    ma = function(a) {
        return 0 < a && 0 === (a - 1 & a)
    };
    na = function(a) {--a;
        for (var b = 1; 32 > b; b <<= 1) a = a | a >> b;
        return a + 1
    };
    oa = function(a) {
        return 0 > a ? -a: a
    };
    pa = function(a, b) {
        return a > b ? a: b
    };
    qa = function(a, b) {
        return a < b ? a: b
    };
    ra = Math.PI;
    sa = function(a) {
        return 0 <= a ? a | 0 : (a | 0) - 1
    };
    ta = function(a) {
        var b = a | 0;
        return b === a ? b: b + 1
    };
    va = function(a, b, g, e, c, m, l, k) {
        var z, x, d, f;
        a < g ? (x = a, z = g) : (x = g, z = a);
        c < l ? (f = c, d = l) : (f = l, d = c);
        if (z < f || x > d) return ! 1;
        b < e ? (x = b, z = e) : (x = e, z = b);
        m < k ? (f = m, d = k) : (f = k, d = m);
        if (z < f || x > d) return ! 1;
        z = c - a + l - g;
        x = m - b + k - e;
        a = g - a;
        b = e - b;
        c = l - c;
        m = k - m;
        k = oa(b * c - m * a);
        return oa(c * x - m * z) > k ? !1 : oa(a * x - b * z) <= k
    };
    h.prototype.set = function(a, b, g, e) {
        this.left = a;
        this.top = b;
        this.right = g;
        this.bottom = e
    };
    h.prototype.Mg = function(a) {
        this.left = a.left;
        this.top = a.top;
        this.right = a.right;
        this.bottom = a.bottom
    };
    h.prototype.width = function() {
        return this.right - this.left
    };
    h.prototype.height = function() {
        return this.bottom - this.top
    };
    h.prototype.offset = function(a, b) {
        this.left += a;
        this.top += b;
        this.right += a;
        this.bottom += b;
        return this
    };
    h.prototype.normalize = function() {
        var a = 0;
        this.left > this.right && (a = this.left, this.left = this.right, this.right = a);
        this.top > this.bottom && (a = this.top, this.top = this.bottom, this.bottom = a)
    };
    h.prototype.Px = function(a) {
        return ! (a.right < this.left || a.bottom < this.top || a.left > this.right || a.top > this.bottom)
    };
    h.prototype.Qx = function(a, b, g) {
        return ! (a.right + b < this.left || a.bottom + g < this.top || a.left + b > this.right || a.top + g > this.bottom)
    };
    h.prototype.fc = function(a, b) {
        return a >= this.left && a <= this.right && b >= this.top && b <= this.bottom
    };
    h.prototype.gi = function(a) {
        return this.left === a.left && this.top === a.top && this.right === a.right && this.bottom === a.bottom
    };
    wa = h;
    f.prototype.sj = function(a) {
        this.sb = a.left;
        this.tb = a.top;
        this.Zb = a.right;
        this.$b = a.top;
        this.Pb = a.right;
        this.Qb = a.bottom;
        this.Nb = a.left;
        this.Ob = a.bottom
    };
    f.prototype.ks = function(a, b) {
        if (0 === b) this.sj(a);
        else {
            var g = Math.sin(b),
            e = Math.cos(b),
            c = a.left * g,
            m = a.top * g,
            l = a.right * g,
            g = a.bottom * g,
            k = a.left * e,
            z = a.top * e,
            x = a.right * e,
            e = a.bottom * e;
            this.sb = k - m;
            this.tb = z + c;
            this.Zb = x - m;
            this.$b = z + l;
            this.Pb = x - g;
            this.Qb = e + l;
            this.Nb = k - g;
            this.Ob = e + c
        }
    };
    f.prototype.offset = function(a, b) {
        this.sb += a;
        this.tb += b;
        this.Zb += a;
        this.$b += b;
        this.Pb += a;
        this.Qb += b;
        this.Nb += a;
        this.Ob += b;
        return this
    };
    var w = 0,
    M = 0;
    f.prototype.Fp = function(a) {
        d(this.sb, this.Zb, this.Pb, this.Nb);
        a.left = w;
        a.right = M;
        d(this.tb, this.$b, this.Qb, this.Ob);
        a.top = w;
        a.bottom = M
    };
    f.prototype.fc = function(a, b) {
        var g = this.sb,
        e = this.tb,
        c = this.Zb - g,
        m = this.$b - e,
        l = this.Pb - g,
        k = this.Qb - e,
        z = a - g,
        x = b - e,
        d = c * c + m * m,
        f = c * l + m * k,
        m = c * z + m * x,
        h = l * l + k * k,
        w = l * z + k * x,
        u = 1 / (d * h - f * f),
        c = (h * m - f * w) * u,
        d = (d * w - f * m) * u;
        if (0 <= c && 0 < d && 1 > c + d) return ! 0;
        c = this.Nb - g;
        m = this.Ob - e;
        d = c * c + m * m;
        f = c * l + m * k;
        m = c * z + m * x;
        u = 1 / (d * h - f * f);
        c = (h * m - f * w) * u;
        d = (d * w - f * m) * u;
        return 0 <= c && 0 < d && 1 > c + d
    };
    f.prototype.Ed = function(a, b) {
        if (b) switch (a) {
        case 0:
            return this.sb;
        case 1:
            return this.Zb;
        case 2:
            return this.Pb;
        case 3:
            return this.Nb;
        case 4:
            return this.sb;
        default:
            return this.sb
        } else switch (a) {
        case 0:
            return this.tb;
        case 1:
            return this.$b;
        case 2:
            return this.Qb;
        case 3:
            return this.Ob;
        case 4:
            return this.tb;
        default:
            return this.tb
        }
    };
    f.prototype.ir = function() {
        return (this.sb + this.Zb + this.Pb + this.Nb) / 4
    };
    f.prototype.jr = function() {
        return (this.tb + this.$b + this.Qb + this.Ob) / 4
    };
    f.prototype.xq = function(a) {
        var b = a.ir(),
        g = a.jr();
        if (this.fc(b, g)) return ! 0;
        b = this.ir();
        g = this.jr();
        if (a.fc(b, g)) return ! 0;
        var e, c, m, l, k, z, x, d;
        for (x = 0; 4 > x; x++) for (d = 0; 4 > d; d++) if (b = this.Ed(x, !0), g = this.Ed(x, !1), e = this.Ed(x + 1, !0), c = this.Ed(x + 1, !1), m = a.Ed(d, !0), l = a.Ed(d, !1), k = a.Ed(d + 1, !0), z = a.Ed(d + 1, !1), va(b, g, e, c, m, l, k, z)) return ! 0;
        return ! 1
    };
    xa = f;
    ya = function(a, b) {
        for (var g in b) b.hasOwnProperty(g) && (a[g] = b[g]);
        return a
    };
    za = function(a, b) {
        var g, e;
        b = sa(b);
        if (! (0 > b || b >= a.length)) {
            g = b;
            for (e = a.length - 1; g < e; g++) a[g] = a[g + 1];
            Aa(a, e)
        }
    };
    Aa = function(a, b) {
        a.length = b
    };
    A = function(a) {
        Aa(a, 0)
    };
    Ca = function(a, b) {
        A(a);
        var g, e;
        g = 0;
        for (e = b.length; g < e; ++g) a[g] = b[g]
    };
    Da = function(a, b) {
        a.push.apply(a, b)
    };
    Ea = function(a, b) {
        var g, e;
        g = 0;
        for (e = a.length; g < e; ++g) if (a[g] === b) return g;
        return - 1
    };
    Fa = function(a, b) {
        var g = Ea(a, b); - 1 !== g && za(a, g)
    };
    Ga = function(a, b, g) {
        return a < b ? b: a > g ? g: a
    };
    D = function(a) {
        return a / (180 / ra)
    };
    Ha = function(a) {
        return 180 / ra * a
    };
    Ja = function(a) {
        a %= 360;
        0 > a && (a += 360);
        return a
    };
    La = function(a) {
        a %= 2 * ra;
        0 > a && (a += 2 * ra);
        return a
    };
    Ma = function(a) {
        return Ja(Ha(a))
    };
    Na = function(a) {
        return La(D(a))
    };
    Oa = function(a, b, g, e) {
        return Math.atan2(e - b, g - a)
    };
    Pa = function(a, b) {
        if (a === b) return 0;
        var g = Math.sin(a),
        e = Math.cos(a),
        c = Math.sin(b),
        m = Math.cos(b),
        g = g * c + e * m;
        return 1 <= g ? 0 : -1 >= g ? ra: Math.acos(g)
    };
    Qa = function(a, b, g) {
        var e = Math.sin(a),
        c = Math.cos(a),
        m = Math.sin(b),
        l = Math.cos(b);
        return Math.acos(e * m + c * l) > g ? 0 < c * m - e * l ? La(a + g) : La(a - g) : La(b)
    };
    Ra = function(a, b) {
        var g = Math.sin(a),
        e = Math.cos(a),
        c = Math.sin(b),
        m = Math.cos(b);
        return 0 >= e * c - g * m
    };
    Sa = function(a, b, g, e, c, m) {
        if (0 === g) return m ? a: b;
        var l = Math.sin(g);
        g = Math.cos(g);
        a -= e;
        b -= c;
        var k = a * l;
        a = a * g - b * l;
        b = b * g + k;
        return m ? a + e: b + c
    };
    Ta = function(a, b, g, e) {
        a = g - a;
        b = e - b;
        return Math.sqrt(a * a + b * b)
    };
    Ua = function(a, b) {
        return ! a !== !b
    };
    Wa = function(a) {
        for (var b in a) if (a.hasOwnProperty(b)) return ! 0;
        return ! 1
    };
    Xa = function(a) {
        for (var b in a) a.hasOwnProperty(b) && delete a[b]
    };
    var P = +new Date;
    Ya = function() {
        if ("undefined" !== typeof window.performance) {
            var a = window.performance;
            if ("undefined" !== typeof a.now) return a.now();
            if ("undefined" !== typeof a.webkitNow) return a.webkitNow();
            if ("undefined" !== typeof a.mozNow) return a.mozNow();
            if ("undefined" !== typeof a.msNow) return a.msNow()
        }
        return Date.now() - P
    };
    var m = !1,
    u = m = !1,
    I = !1;
    "undefined" !== typeof window && (m = /chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent), m = !m && /safari/i.test(navigator.userAgent), u = /(iphone|ipod|ipad)/i.test(navigator.userAgent), I = window.c2ejecta);
    var T = !m && !I && !u && "undefined" !== typeof Set && "undefined" !== typeof Set.prototype.forEach;
    n.prototype.contains = function(a) {
        return this.Ie() ? !1 : T ? this.Ac.has(a) : this.items && this.items.hasOwnProperty(a)
    };
    n.prototype.add = function(a) {
        if (T) this.Ac.has(a) || (this.Ac.add(a), this.hf = !1);
        else {
            var b = a.toString(),
            g = this.items;
            g ? g.hasOwnProperty(b) || (g[b] = a, this.Mi++, this.hf = !1) : (this.items = {},
            this.items[b] = a, this.Mi = 1, this.hf = !1)
        }
    };
    n.prototype.remove = function(a) {
        if (!this.Ie()) if (T) this.Ac.has(a) && (this.Ac["delete"](a), this.hf = !1);
        else if (this.items) {
            a = a.toString();
            var b = this.items;
            b.hasOwnProperty(a) && (delete b[a], this.Mi--, this.hf = !1)
        }
    };
    n.prototype.clear = function() {
        this.Ie() || (T ? this.Ac.clear() : (this.items = null, this.Mi = 0), A(this.Oh), this.hf = !0)
    };
    n.prototype.Ie = function() {
        return 0 === this.count()
    };
    n.prototype.count = function() {
        return T ? this.Ac.size: this.Mi
    };
    var v = null,
    H = 0;
    n.prototype.Hz = function() {
        if (!this.hf) {
            if (T) A(this.Oh),
            v = this.Oh,
            H = 0,
            this.Ac.forEach(q),
            v = null,
            H = 0;
            else {
                var a = this.Oh;
                A(a);
                var b, g = 0,
                e = this.items;
                if (e) for (b in e) e.hasOwnProperty(b) && (a[g++] = e[b])
            }
            this.hf = !0
        }
    };
    n.prototype.Jf = function() {
        this.Hz();
        return this.Oh
    };
    ca = n;
    new ca;
    $a = function(a, b) {
        T ? ab(a, b.Ac) : bb(a, b.Jf())
    };
    ab = function(a, b) {
        var g, e, c, m;
        e = g = 0;
        for (c = a.length; g < c; ++g) m = a[g],
        b.has(m) || (a[e++] = m);
        Aa(a, e)
    };
    bb = function(a, b) {
        var g, e, c, m;
        e = g = 0;
        for (c = a.length; g < c; ++g) m = a[g],
        -1 === Ea(b, m) && (a[e++] = m);
        Aa(a, e)
    };
    p.prototype.add = function(a) {
        this.y = a - this.Rf;
        this.Gh = this.na + this.y;
        this.Rf = this.Gh - this.na - this.y;
        this.na = this.Gh
    };
    p.prototype.reset = function() {
        this.na = this.Gh = this.y = this.Rf = 0
    };
    cb = p;
    db = function(a) {
        return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
    };
    r.prototype.tj = function(a) {
        this.Rr = a;
        this.Nd = a.length / 2;
        this.Eb.length = a.length;
        this.Xj = this.Yj = -1;
        this.Ip = 0
    };
    r.prototype.$g = function() {
        return ! this.Rr.length
    };
    r.prototype.Ga = function() {
        for (var a = this.Eb,
        b = a[0], g = b, e = a[1], c = e, m, l, k = 1, z = this.Nd; k < z; ++k) l = 2 * k,
        m = a[l],
        l = a[l + 1],
        m < b && (b = m),
        m > g && (g = m),
        l < e && (e = l),
        l > c && (c = l);
        this.Tj = b;
        this.Uj = g;
        this.Vj = e;
        this.Sj = c
    };
    r.prototype.sj = function(a, b, g) {
        this.Eb.length = 8;
        this.Nd = 4;
        var e = this.Eb;
        e[0] = a.left - b;
        e[1] = a.top - g;
        e[2] = a.right - b;
        e[3] = a.top - g;
        e[4] = a.right - b;
        e[5] = a.bottom - g;
        e[6] = a.left - b;
        e[7] = a.bottom - g;
        this.Yj = a.right - a.left;
        this.Xj = a.bottom - a.top;
        this.Ga()
    };
    r.prototype.Dh = function(a, b, g, e, c) {
        this.Eb.length = 8;
        this.Nd = 4;
        var m = this.Eb;
        m[0] = a.sb - b;
        m[1] = a.tb - g;
        m[2] = a.Zb - b;
        m[3] = a.$b - g;
        m[4] = a.Pb - b;
        m[5] = a.Qb - g;
        m[6] = a.Nb - b;
        m[7] = a.Ob - g;
        this.Yj = e;
        this.Xj = c;
        this.Ga()
    };
    r.prototype.js = function(a) {
        this.Nd = a.Nd;
        Ca(this.Eb, a.Eb);
        this.Tj = a.Tj;
        this.Vj - a.Vj;
        this.Uj = a.Uj;
        this.Sj = a.Sj
    };
    r.prototype.Jg = function(a, b, g) {
        if (this.Yj !== a || this.Xj !== b || this.Ip !== g) {
            this.Yj = a;
            this.Xj = b;
            this.Ip = g;
            var e, c, m, l, k, z = 0,
            x = 1,
            d = this.Rr,
            f = this.Eb;
            0 !== g && (z = Math.sin(g), x = Math.cos(g));
            g = 0;
            for (m = this.Nd; g < m; g++) e = 2 * g,
            c = e + 1,
            l = d[e] * a,
            k = d[c] * b,
            f[e] = l * x - k * z,
            f[c] = k * x + l * z;
            this.Ga()
        }
    };
    r.prototype.fc = function(a, b) {
        var g = this.Eb;
        if (a === g[0] && b === g[1]) return ! 0;
        var e, c, m, l = this.Nd,
        k = this.Tj - 110,
        z = this.Vj - 101,
        x = this.Uj + 131,
        d = this.Sj + 120,
        f, h, u = 0,
        w = 0;
        for (e = 0; e < l; e++) c = 2 * e,
        m = (e + 1) % l * 2,
        f = g[c],
        c = g[c + 1],
        h = g[m],
        m = g[m + 1],
        va(k, z, a, b, f, c, h, m) && u++,
        va(x, d, a, b, f, c, h, m) && w++;
        return 1 === u % 2 || 1 === w % 2
    };
    r.prototype.Ci = function(a, b, g) {
        var e = a.Eb,
        c = this.Eb;
        if (this.fc(e[0] + b, e[1] + g) || a.fc(c[0] - b, c[1] - g)) return ! 0;
        var m, l, k, z, x, d, f, h, u, w, M, v;
        m = 0;
        for (z = this.Nd; m < z; m++) for (l = 2 * m, k = (m + 1) % z * 2, h = c[l], l = c[l + 1], u = c[k], w = c[k + 1], k = 0, f = a.Nd; k < f; k++) if (x = 2 * k, d = (k + 1) % f * 2, M = e[x] + b, x = e[x + 1] + g, v = e[d] + b, d = e[d + 1] + g, va(h, l, u, w, M, x, v, d)) return ! 0;
        return ! 1
    };
    eb = r;
    a.prototype.rf = function(a, b, g) {
        var e;
        e = this.cells[a];
        return e ? (e = e[b]) ? e: g ? (e = c(this, a, b), this.cells[a][b] = e) : null: g ? (e = c(this, a, b), this.cells[a] = {},
        this.cells[a][b] = e) : null
    };
    a.prototype.rc = function(a) {
        return sa(a / this.ym)
    };
    a.prototype.sc = function(a) {
        return sa(a / this.xm)
    };
    a.prototype.update = function(a, b, g) {
        var e, c, m, l, k;
        if (b) for (e = b.left, c = b.right; e <= c; ++e) for (m = b.top, l = b.bottom; m <= l; ++m) if (!g || !g.fc(e, m)) if (k = this.rf(e, m, !1)) k.remove(a),
        k.Ie() && (k.Jb.clear(), 1E3 > C.length && C.push(k), this.cells[e][m] = null);
        if (g) for (e = g.left, c = g.right; e <= c; ++e) for (m = g.top, l = g.bottom; m <= l; ++m) b && b.fc(e, m) || this.rf(e, m, !0).hn(a)
    };
    a.prototype.xl = function(a, b) {
        var g, e, c, m, l, k;
        g = this.rc(a.left);
        c = this.sc(a.top);
        e = this.rc(a.right);
        for (l = this.sc(a.bottom); g <= e; ++g) for (m = c; m <= l; ++m)(k = this.rf(g, m, !1)) && k.dump(b)
    };
    fb = a;
    b.prototype.rf = function(a, b, g) {
        var c;
        c = this.cells[a];
        return c ? (c = c[b]) ? c: g ? (c = e(this, a, b), this.cells[a][b] = c) : null: g ? (c = e(this, a, b), this.cells[a] = {},
        this.cells[a][b] = c) : null
    };
    b.prototype.rc = function(a) {
        return sa(a / this.ym)
    };
    b.prototype.sc = function(a) {
        return sa(a / this.xm)
    };
    b.prototype.update = function(a, b, g) {
        var e, c, m, l, k;
        if (b) for (e = b.left, c = b.right; e <= c; ++e) for (m = b.top, l = b.bottom; m <= l; ++m) if (!g || !g.fc(e, m)) if (k = this.rf(e, m, !1)) k.remove(a),
        k.Ie() && (k.reset(), 1E3 > t.length && t.push(k), this.cells[e][m] = null);
        if (g) for (e = g.left, c = g.right; e <= c; ++e) for (m = g.top, l = g.bottom; m <= l; ++m) b && b.fc(e, m) || this.rf(e, m, !0).hn(a)
    };
    b.prototype.xl = function(a, b, g, e, c) {
        var m, l;
        a = this.rc(a);
        b = this.sc(b);
        g = this.rc(g);
        for (m = this.sc(e); a <= g; ++a) for (e = b; e <= m; ++e)(l = this.rf(a, e, !1)) && l.dump(c)
    };
    b.prototype.ny = function(a) {
        var b, g, e, c, m;
        b = a.left;
        e = a.top;
        g = a.right;
        for (c = a.bottom; b <= g; ++b) for (a = e; a <= c; ++a) if (m = this.rf(b, a, !1)) m.dh = !1
    };
    gb = b;
    var C = [];
    g.prototype.Ie = function() {
        return this.Jb.Ie()
    };
    g.prototype.hn = function(a) {
        this.Jb.add(a)
    };
    g.prototype.remove = function(a) {
        this.Jb.remove(a)
    };
    g.prototype.dump = function(a) {
        Da(a, this.Jb.Jf())
    };
    ba = g;
    var t = [];
    k.prototype.Ie = function() {
        if (!this.Jb.length) return ! 0;
        if (this.Jb.length > this.ge.count()) return ! 1;
        this.Pm();
        return ! 0
    };
    k.prototype.hn = function(a) {
        this.ge.contains(a) ? (this.ge.remove(a), this.ge.Ie() && (this.Wh = !1)) : this.Jb.length ? (this.Jb[this.Jb.length - 1].$d() > a.$d() && (this.dh = !1), this.Jb.push(a)) : (this.Jb.push(a), this.dh = !0)
    };
    k.prototype.remove = function(a) {
        this.ge.add(a);
        this.Wh = !0;
        30 <= this.ge.count() && this.Pm()
    };
    k.prototype.Pm = function() {
        this.Wh && (this.ge.count() === this.Jb.length ? this.reset() : ($a(this.Jb, this.ge), this.ge.clear(), this.Wh = !1))
    };
    k.prototype.ow = function() {
        this.dh || (this.Jb.sort(l), this.dh = !0)
    };
    k.prototype.reset = function() {
        A(this.Jb);
        this.dh = !0;
        this.ge.clear();
        this.Wh = !1
    };
    k.prototype.dump = function(a) {
        this.Pm();
        this.ow();
        this.Jb.length && a.push(this.Jb)
    };
    ea = k;
    var F = "lighter xor copy destination-over source-in destination-in source-out destination-out source-atop destination-atop".split(" ");
    hb = function(a) {
        return 0 >= a || 11 <= a ? "source-over": F[a - 1]
    };
    kb = function(a, b, g) {
        if (g) switch (a.lc = g.ONE, a.gc = g.ONE_MINUS_SRC_ALPHA, b) {
        case 1:
            a.lc = g.ONE;
            a.gc = g.ONE;
            break;
        case 3:
            a.lc = g.ONE;
            a.gc = g.ZERO;
            break;
        case 4:
            a.lc = g.ONE_MINUS_DST_ALPHA;
            a.gc = g.ONE;
            break;
        case 5:
            a.lc = g.DST_ALPHA;
            a.gc = g.ZERO;
            break;
        case 6:
            a.lc = g.ZERO;
            a.gc = g.SRC_ALPHA;
            break;
        case 7:
            a.lc = g.ONE_MINUS_DST_ALPHA;
            a.gc = g.ZERO;
            break;
        case 8:
            a.lc = g.ZERO;
            a.gc = g.ONE_MINUS_SRC_ALPHA;
            break;
        case 9:
            a.lc = g.DST_ALPHA;
            a.gc = g.ONE_MINUS_SRC_ALPHA;
            break;
        case 10:
            a.lc = g.ONE_MINUS_DST_ALPHA,
            a.gc = g.SRC_ALPHA
        }
    };
    lb = function(a) {
        return Math.round(1E6 * a) / 1E6
    };
    mb = function(a, b) {
        return "string" !== typeof a || "string" !== typeof b || a.length !== b.length ? !1 : a === b ? !0 : a.toLowerCase() === b.toLowerCase()
    };
    nb = function(a) {
        a = a.target;
        return ! a || a === document || a === window || document && document.body && a === document.body || mb(a.tagName, "canvas") ? !0 : !1
    }
})();
var kc = "undefined" !== typeof Float32Array ? Float32Array: Array;
function lc(h) {
    var f = new kc(3);
    h && (f[0] = h[0], f[1] = h[1], f[2] = h[2]);
    return f
}
function mc(h) {
    var f = new kc(16);
    h && (f[0] = h[0], f[1] = h[1], f[2] = h[2], f[3] = h[3], f[4] = h[4], f[5] = h[5], f[6] = h[6], f[7] = h[7], f[8] = h[8], f[9] = h[9], f[10] = h[10], f[11] = h[11], f[12] = h[12], f[13] = h[13], f[14] = h[14], f[15] = h[15]);
    return f
}
function nc(h, f) {
    f[0] = h[0];
    f[1] = h[1];
    f[2] = h[2];
    f[3] = h[3];
    f[4] = h[4];
    f[5] = h[5];
    f[6] = h[6];
    f[7] = h[7];
    f[8] = h[8];
    f[9] = h[9];
    f[10] = h[10];
    f[11] = h[11];
    f[12] = h[12];
    f[13] = h[13];
    f[14] = h[14];
    f[15] = h[15]
}
function oc(h, f) {
    var d = f[0],
    n = f[1];
    f = f[2];
    h[0] *= d;
    h[1] *= d;
    h[2] *= d;
    h[3] *= d;
    h[4] *= n;
    h[5] *= n;
    h[6] *= n;
    h[7] *= n;
    h[8] *= f;
    h[9] *= f;
    h[10] *= f;
    h[11] *= f
}
function pc(h, f, d, n) {
    n || (n = mc());
    var q, p, r, a, b, c, g, e, k = h[0],
    l = h[1];
    h = h[2];
    p = d[0];
    r = d[1];
    q = d[2];
    d = f[1];
    c = f[2];
    k === f[0] && l === d && h === c ? (h = n, h[0] = 1, h[1] = 0, h[2] = 0, h[3] = 0, h[4] = 0, h[5] = 1, h[6] = 0, h[7] = 0, h[8] = 0, h[9] = 0, h[10] = 1, h[11] = 0, h[12] = 0, h[13] = 0, h[14] = 0, h[15] = 1) : (d = k - f[0], c = l - f[1], g = h - f[2], e = 1 / Math.sqrt(d * d + c * c + g * g), d *= e, c *= e, g *= e, f = r * g - q * c, q = q * d - p * g, p = p * c - r * d, (e = Math.sqrt(f * f + q * q + p * p)) ? (e = 1 / e, f *= e, q *= e, p *= e) : p = q = f = 0, r = c * p - g * q, a = g * f - d * p, b = d * q - c * f, (e = Math.sqrt(r * r + a * a + b * b)) ? (e = 1 / e, r *= e, a *= e, b *= e) : b = a = r = 0, n[0] = f, n[1] = r, n[2] = d, n[3] = 0, n[4] = q, n[5] = a, n[6] = c, n[7] = 0, n[8] = p, n[9] = b, n[10] = g, n[11] = 0, n[12] = -(f * k + q * l + p * h), n[13] = -(r * k + a * l + b * h), n[14] = -(d * k + c * l + g * h), n[15] = 1)
} (function() {
    function h(a, b, c) {
        this.vf = /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent);
        this.height = this.width = 0;
        this.Ka = !!c;
        this.Lk = this.Ei = !1;
        this.Em = 0;
        this.dm = 1;
        this.Ro = 1E3;
        this.Pz = (this.Ro - this.dm) / 32768;
        this.vm = lc([0, 0, 100]);
        this.Qq = lc([0, 0, 0]);
        this.Fs = lc([0, 1, 0]);
        this.Hj = lc([1, 1, 1]);
        this.Tp = !0;
        this.dl = mc();
        this.Xc = mc();
        this.un = mc();
        this.Dm = mc();
        this.H = a;
        this.version = 0 === this.H.getParameter(this.H.VERSION).indexOf("WebGL 2") ? 2 : 1;
        this.tq()
    }
    function f(a, b, c) {
        this.H = a;
        this.uj = b;
        this.name = c;
        this.od = a.getAttribLocation(b, "aPos");
        this.zf = a.getAttribLocation(b, "aTex");
        this.Oq = a.getUniformLocation(b, "matP");
        this.$k = a.getUniformLocation(b, "matMV");
        this.kh = a.getUniformLocation(b, "opacity");
        this.zn = a.getUniformLocation(b, "colorFill");
        this.Pq = a.getUniformLocation(b, "samplerFront");
        this.Ui = a.getUniformLocation(b, "samplerBack");
        this.tg = a.getUniformLocation(b, "destStart");
        this.sg = a.getUniformLocation(b, "destEnd");
        this.Wi = a.getUniformLocation(b, "seconds");
        this.Bn = a.getUniformLocation(b, "pixelWidth");
        this.An = a.getUniformLocation(b, "pixelHeight");
        this.Ti = a.getUniformLocation(b, "layerScale");
        this.Si = a.getUniformLocation(b, "layerAngle");
        this.Xi = a.getUniformLocation(b, "viewOrigin");
        this.Vi = a.getUniformLocation(b, "scrollPos");
        this.Jx = !!(this.Bn || this.An || this.Wi || this.Ui || this.tg || this.sg || this.Ti || this.Si || this.Xi || this.Vi);
        this.Yq = this.Zq = -999;
        this.cl = 1;
        this.Uq = this.Tq = 0;
        this.Wq = this.Sq = this.Rq = 1;
        this.cr = this.br = this.$q = this.er = this.dr = this.Vq = 0;
        this.tn = [];
        this.Xq = mc();
        this.kh && a.uniform1f(this.kh, 1);
        this.zn && a.uniform4f(this.zn, 1, 1, 1, 1);
        this.Pq && a.uniform1i(this.Pq, 0);
        this.Ui && a.uniform1i(this.Ui, 1);
        this.tg && a.uniform2f(this.tg, 0, 0);
        this.sg && a.uniform2f(this.sg, 1, 1);
        this.Ti && a.uniform1f(this.Ti, 1);
        this.Si && a.uniform1f(this.Si, 0);
        this.Xi && a.uniform2f(this.Xi, 0, 0);
        this.Vi && a.uniform2f(this.Vi, 0, 0);
        this.Wi && a.uniform1f(this.Wi, 0);
        this.eg = !1
    }
    function d(a, b) {
        return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15]
    }
    function n(a, b) {
        this.type = a;
        this.J = b;
        this.H = b.H;
        this.ae = this.qc = this.Dr = 0;
        this.aa = this.vd = null;
        this.ls = []
    }
    var q = mc();
    h.prototype.tq = function() {
        var a = this.H,
        b;
        this.Iq = 1;
        this.lg = this.kg = null;
        this.jk = 1;
        a.clearColor(0, 0, 0, 0);
        a.clear(a.COLOR_BUFFER_BIT);
        a.enable(a.BLEND);
        a.blendFunc(a.ONE, a.ONE_MINUS_SRC_ALPHA);
        a.disable(a.CULL_FACE);
        a.disable(a.STENCIL_TEST);
        a.disable(a.DITHER);
        this.Ka ? (a.enable(a.DEPTH_TEST), a.depthFunc(a.LEQUAL)) : a.disable(a.DEPTH_TEST);
        this.Jq = a.ONE;
        this.Hq = a.ONE_MINUS_SRC_ALPHA;
        this.am = new Float32Array(8E3 * (this.Ka ? 3 : 2));
        this.Nl = new Float32Array(16E3);
        this.Nr = new Float32Array(32E3);
        this.Yn = a.createBuffer();
        a.bindBuffer(a.ARRAY_BUFFER, this.Yn);
        a.bufferData(a.ARRAY_BUFFER, this.Nr.byteLength, a.DYNAMIC_DRAW);
        this.Gj = Array(4);
        this.Aj = Array(4);
        for (b = 0; 4 > b; b++) this.Gj[b] = a.createBuffer(),
        a.bindBuffer(a.ARRAY_BUFFER, this.Gj[b]),
        a.bufferData(a.ARRAY_BUFFER, this.am.byteLength, a.DYNAMIC_DRAW),
        this.Aj[b] = a.createBuffer(),
        a.bindBuffer(a.ARRAY_BUFFER, this.Aj[b]),
        a.bufferData(a.ARRAY_BUFFER, this.Nl.byteLength, a.DYNAMIC_DRAW);
        this.we = 0;
        this.Mx = a.createBuffer();
        a.bindBuffer(a.ELEMENT_ARRAY_BUFFER, this.Mx);
        for (var c = new Uint16Array(12E3), g = b = 0; 12E3 > b;) c[b++] = g,
        c[b++] = g + 1,
        c[b++] = g + 2,
        c[b++] = g,
        c[b++] = g + 2,
        c[b++] = g + 3,
        g += 4;
        a.bufferData(a.ELEMENT_ARRAY_BUFFER, c, a.STATIC_DRAW);
        this.Zn = this.Hh = this.Ye = 0;
        this.Xa = [];
        b = this.Ka ? "attribute highp vec3 aPos;\nattribute mediump vec2 aTex;\nvarying mediump vec2 vTex;\nuniform highp mat4 matP;\nuniform highp mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, aPos.z, 1.0);\n\tvTex = aTex;\n}": "attribute highp vec2 aPos;\nattribute mediump vec2 aTex;\nvarying mediump vec2 vTex;\nuniform highp mat4 matP;\nuniform highp mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);\n\tvTex = aTex;\n}";
        c = this.ai({
            src: "varying mediump vec2 vTex;\nuniform lowp float opacity;\nuniform lowp sampler2D samplerFront;\nvoid main(void) {\n\tgl_FragColor = texture2D(samplerFront, vTex);\n\tgl_FragColor *= opacity;\n}"
        },
        b, "<default>");
        this.Xa.push(c);
        c = this.ai({
            src: "uniform mediump sampler2D samplerFront;\nvarying lowp float opacity;\nvoid main(void) {\n\tgl_FragColor = texture2D(samplerFront, gl_PointCoord);\n\tgl_FragColor *= opacity;\n}"
        },
        "attribute vec4 aPos;\nvarying float opacity;\nuniform mat4 matP;\nuniform mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);\n\tgl_PointSize = aPos.z;\n\topacity = aPos.w;\n}", "<point>");
        this.Xa.push(c);
        c = this.ai({
            src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nvoid main(void) {\n\tif (texture2D(samplerFront, vTex).a < 1.0)\n\t\tdiscard;\n}"
        },
        b, "<earlyz>");
        this.Xa.push(c);
        c = this.ai({
            src: "uniform lowp vec4 colorFill;\nvoid main(void) {\n\tgl_FragColor = colorFill;\n}"
        },
        b, "<fill>");
        this.Xa.push(c);
        for (var e in qc) qc.hasOwnProperty(e) && this.Xa.push(this.ai(qc[e], b, e));
        a.activeTexture(a.TEXTURE0);
        a.bindTexture(a.TEXTURE_2D, null);
        this.gf = [];
        this.ue = 0;
        this.ic = !1;
        this.Op = this.Pi = -1;
        this.Og = null;
        this.Nm = a.createFramebuffer();
        this.nk = this.yl = null;
        this.Dp = !1;
        this.Ka && (this.nk = a.createRenderbuffer());
        this.If = lc([0, 0, 0]);
        this.fr = a.getParameter(a.ALIASED_POINT_SIZE_RANGE)[1];
        2048 < this.fr && (this.fr = 2048);
        this.Cc(0)
    };
    f.prototype.Ko = function(a) {
        d(this.Xq, a) || (nc(a, this.Xq), this.H.uniformMatrix4fv(this.$k, !1, a))
    };
    h.prototype.ai = function(a, b, c) {
        var g = this.H,
        e = g.createShader(g.FRAGMENT_SHADER);
        g.shaderSource(e, a.src);
        g.compileShader(e);
        if (!g.getShaderParameter(e, g.COMPILE_STATUS)) throw a = g.getShaderInfoLog(e),
        g.deleteShader(e),
        Error("error compiling fragment shader: " + a);
        var k = g.createShader(g.VERTEX_SHADER);
        g.shaderSource(k, b);
        g.compileShader(k);
        if (!g.getShaderParameter(k, g.COMPILE_STATUS)) throw a = g.getShaderInfoLog(k),
        g.deleteShader(e),
        g.deleteShader(k),
        Error("error compiling vertex shader: " + a);
        b = g.createProgram();
        g.attachShader(b, e);
        g.attachShader(b, k);
        g.linkProgram(b);
        if (!g.getProgramParameter(b, g.LINK_STATUS)) throw a = g.getProgramInfoLog(b),
        g.deleteShader(e),
        g.deleteShader(k),
        g.deleteProgram(b),
        Error("error linking shader program: " + a);
        g.useProgram(b);
        g.deleteShader(e);
        g.deleteShader(k);
        e = new f(g, b, c);
        e.ji = a.ji || 0;
        e.ki = a.ki || 0;
        e.gk = !!a.gk;
        e.Zc = !!a.Zc;
        e.Pj = !!a.Pj;
        e.X = a.X || [];
        a = 0;
        for (k = e.X.length; a < k; a++) e.X[a][1] = g.getUniformLocation(b, e.X[a][0]),
        e.tn.push(0),
        g.uniform1f(e.X[a][1], 0);
        return e
    };
    h.prototype.$m = function(a) {
        var b, c;
        b = 0;
        for (c = this.Xa.length; b < c; b++) if (this.Xa[b].name === a) return b;
        return - 1
    };
    h.prototype.Qr = function(a, b, c) {
        var g = this.Xc,
        e = this.dl,
        k = [0, 0, 0, 0, 0, 0, 0, 0];
        k[0] = g[0] * a + g[4] * b + g[12];
        k[1] = g[1] * a + g[5] * b + g[13];
        k[2] = g[2] * a + g[6] * b + g[14];
        k[3] = g[3] * a + g[7] * b + g[15];
        k[4] = e[0] * k[0] + e[4] * k[1] + e[8] * k[2] + e[12] * k[3];
        k[5] = e[1] * k[0] + e[5] * k[1] + e[9] * k[2] + e[13] * k[3];
        k[6] = e[2] * k[0] + e[6] * k[1] + e[10] * k[2] + e[14] * k[3];
        k[7] = -k[2];
        0 !== k[7] && (k[7] = 1 / k[7], k[4] *= k[7], k[5] *= k[7], k[6] *= k[7], c[0] = (.5 * k[4] + .5) * this.width, c[1] = (.5 * k[5] + .5) * this.height)
    };
    h.prototype.Se = function(a, b, c) {
        if (this.width !== a || this.height !== b || c) {
            this.$f();
            c = this.H;
            this.width = a;
            this.height = b;
            c.viewport(0, 0, a, b);
            pc(this.vm, this.Qq, this.Fs, this.Xc);
            if (this.Ka) {
                var g = -a / 2;
                a = a / 2;
                var e = b / 2;
                b = -b / 2;
                var k = this.dm,
                l = this.Ro,
                d = this.dl;
                d || (d = mc());
                var f = a - g,
                h = b - e,
                m = l - k;
                d[0] = 2 / f;
                d[1] = 0;
                d[2] = 0;
                d[3] = 0;
                d[4] = 0;
                d[5] = 2 / h;
                d[6] = 0;
                d[7] = 0;
                d[8] = 0;
                d[9] = 0;
                d[10] = -2 / m;
                d[11] = 0;
                d[12] = -(g + a) / f;
                d[13] = -(b + e) / h;
                d[14] = -(l + k) / m;
                d[15] = 1;
                this.Hj[0] = 1;
                this.Hj[1] = 1
            } else b = a / b,
            g = this.dm,
            a = this.Ro,
            d = this.dl,
            l = g * Math.tan(45 * Math.PI / 360),
            b *= l,
            e = -b,
            k = -l,
            d || (d = mc()),
            f = b - e,
            h = l - k,
            m = a - g,
            d[0] = 2 * g / f,
            d[1] = 0,
            d[2] = 0,
            d[3] = 0,
            d[4] = 0,
            d[5] = 2 * g / h,
            d[6] = 0,
            d[7] = 0,
            d[8] = (b + e) / f,
            d[9] = (l + k) / h,
            d[10] = -(a + g) / m,
            d[11] = -1,
            d[12] = 0,
            d[13] = 0,
            d[14] = -(a * g * 2) / m,
            d[15] = 0,
            g = [0, 0],
            a = [0, 0],
            this.Qr(0, 0, g),
            this.Qr(1, 1, a),
            this.Hj[0] = 1 / (a[0] - g[0]),
            this.Hj[1] = -1 / (a[1] - g[1]);
            g = 0;
            for (a = this.Xa.length; g < a; g++) e = this.Xa[g],
            e.eg = !1,
            e.Oq && (c.useProgram(e.uj), c.uniformMatrix4fv(e.Oq, !1, this.dl));
            c.useProgram(this.Xa[this.Pi].uj);
            c.bindTexture(c.TEXTURE_2D, null);
            c.activeTexture(c.TEXTURE1);
            c.bindTexture(c.TEXTURE_2D, null);
            c.activeTexture(c.TEXTURE0);
            this.lg = this.kg = null;
            this.nk && (c.bindFramebuffer(c.FRAMEBUFFER, this.Nm), c.bindRenderbuffer(c.RENDERBUFFER, this.nk), c.renderbufferStorage(c.RENDERBUFFER, c.DEPTH_COMPONENT16, this.width, this.height), this.Dp || (c.framebufferRenderbuffer(c.FRAMEBUFFER, c.DEPTH_ATTACHMENT, c.RENDERBUFFER, this.nk), this.Dp = !0), c.bindRenderbuffer(c.RENDERBUFFER, null), c.bindFramebuffer(c.FRAMEBUFFER, null), this.yl = null)
        }
    };
    h.prototype.je = function() {
        pc(this.vm, this.Qq, this.Fs, this.Xc);
        oc(this.Xc, this.Hj)
    };
    h.prototype.translate = function(a, b) {
        if (0 !== a || 0 !== b) {
            this.If[0] = a;
            this.If[1] = b;
            this.If[2] = 0;
            var c = this.Xc,
            g = this.If,
            e = g[0],
            k = g[1],
            g = g[2];
            c[12] = c[0] * e + c[4] * k + c[8] * g + c[12];
            c[13] = c[1] * e + c[5] * k + c[9] * g + c[13];
            c[14] = c[2] * e + c[6] * k + c[10] * g + c[14];
            c[15] = c[3] * e + c[7] * k + c[11] * g + c[15]
        }
    };
    h.prototype.scale = function(a, b) {
        if (1 !== a || 1 !== b) this.If[0] = a,
        this.If[1] = b,
        this.If[2] = 1,
        oc(this.Xc, this.If)
    };
    h.prototype.mo = function(a) {
        if (0 !== a) {
            var b = this.Xc,
            c, g = Math.sin(a);
            a = Math.cos(a);
            var e = b[0],
            k = b[1],
            l = b[2],
            d = b[3],
            f = b[4],
            h = b[5],
            m = b[6],
            u = b[7];
            c ? b !== c && (c[8] = b[8], c[9] = b[9], c[10] = b[10], c[11] = b[11], c[12] = b[12], c[13] = b[13], c[14] = b[14], c[15] = b[15]) : c = b;
            c[0] = e * a + f * g;
            c[1] = k * a + h * g;
            c[2] = l * a + m * g;
            c[3] = d * a + u * g;
            c[4] = e * -g + f * a;
            c[5] = k * -g + h * a;
            c[6] = l * -g + m * a;
            c[7] = d * -g + u * a
        }
    };
    h.prototype.Sd = function() {
        if (!d(this.un, this.Xc)) {
            var a = this.Mc();
            a.type = 5;
            a.aa ? nc(this.Xc, a.aa) : a.aa = mc(this.Xc);
            nc(this.Xc, this.un);
            this.ic = !1
        }
    };
    h.prototype.El = function(a) {
        this.Ka && (32760 < a && (a = 32760), this.Em = this.vm[2] - this.dm - a * this.Pz)
    };
    n.prototype.Xv = function() {
        var a = this.H,
        b = this.J;
        0 !== this.qc ? (a.depthMask(!0), a.colorMask(!1, !1, !1, !1), a.disable(a.BLEND), a.bindFramebuffer(a.FRAMEBUFFER, b.Nm), a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, null, 0), a.clear(a.DEPTH_BUFFER_BIT), a.bindFramebuffer(a.FRAMEBUFFER, null), b.Lk = !0) : (a.depthMask(!1), a.colorMask(!0, !0, !0, !0), a.enable(a.BLEND), b.Lk = !1)
    };
    n.prototype.aw = function() {
        this.H.bindTexture(this.H.TEXTURE_2D, this.vd)
    };
    n.prototype.bw = function() {
        var a = this.H;
        a.activeTexture(a.TEXTURE1);
        a.bindTexture(a.TEXTURE_2D, this.vd);
        a.activeTexture(a.TEXTURE0)
    };
    n.prototype.Yv = function() {
        var a = this.Dr,
        b = this.J;
        b.jk = a;
        b = b.Og;
        b.kh && b.cl !== a && (b.cl = a, this.H.uniform1f(b.kh, a))
    };
    n.prototype.Sv = function() {
        this.H.drawElements(this.H.TRIANGLES, this.ae, this.H.UNSIGNED_SHORT, this.qc)
    };
    n.prototype.Uv = function() {
        this.H.blendFunc(this.qc, this.ae)
    };
    n.prototype.dw = function() {
        var a, b, c, g = this.J.Xa,
        e = this.J.Op;
        a = 0;
        for (b = g.length; a < b; a++) c = g[a],
        a === e && c.$k ? (c.Ko(this.aa), c.eg = !0) : c.eg = !1;
        nc(this.aa, this.J.Dm)
    };
    n.prototype.Tv = function() {
        var a = this.H,
        b = this.J;
        this.vd ? (b.lg === this.vd && (a.activeTexture(a.TEXTURE1), a.bindTexture(a.TEXTURE_2D, null), b.lg = null, a.activeTexture(a.TEXTURE0)), a.bindFramebuffer(a.FRAMEBUFFER, b.Nm), b.Lk || a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, this.vd, 0)) : (b.Ka || a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, null, 0), a.bindFramebuffer(a.FRAMEBUFFER, null))
    };
    n.prototype.Pv = function() {
        var a = this.H,
        b = this.qc;
        0 === b ? (a.clearColor(this.aa[0], this.aa[1], this.aa[2], this.aa[3]), a.clear(a.COLOR_BUFFER_BIT)) : 1 === b ? (a.enable(a.SCISSOR_TEST), a.scissor(this.aa[0], this.aa[1], this.aa[2], this.aa[3]), a.clearColor(0, 0, 0, 0), a.clear(a.COLOR_BUFFER_BIT), a.disable(a.SCISSOR_TEST)) : a.clear(a.DEPTH_BUFFER_BIT)
    };
    n.prototype.Wv = function() {
        var a = this.H;
        0 !== this.qc ? a.enable(a.DEPTH_TEST) : a.disable(a.DEPTH_TEST)
    };
    n.prototype.Rv = function() {
        var a = this.H,
        b = this.J;
        b.Ka && a.disable(a.DEPTH_TEST);
        var c = b.Xa[1];
        a.useProgram(c.uj); ! c.eg && c.$k && (c.Ko(b.Dm), c.eg = !0);
        a.enableVertexAttribArray(c.od);
        a.bindBuffer(a.ARRAY_BUFFER, b.Yn);
        a.vertexAttribPointer(c.od, 4, a.FLOAT, !1, 0, 0);
        a.drawArrays(a.POINTS, this.qc / 4, this.ae);
        c = b.Og;
        a.useProgram(c.uj);
        0 <= c.od && (a.enableVertexAttribArray(c.od), a.bindBuffer(a.ARRAY_BUFFER, b.Gj[b.we]), a.vertexAttribPointer(c.od, b.Ka ? 3 : 2, a.FLOAT, !1, 0, 0));
        0 <= c.zf && (a.enableVertexAttribArray(c.zf), a.bindBuffer(a.ARRAY_BUFFER, b.Aj[b.we]), a.vertexAttribPointer(c.zf, 2, a.FLOAT, !1, 0, 0));
        b.Ka && a.enable(a.DEPTH_TEST)
    };
    n.prototype.Zv = function() {
        var a = this.H,
        b = this.J,
        c = b.Xa[this.qc];
        b.Op = this.qc;
        b.Og = c;
        a.useProgram(c.uj); ! c.eg && c.$k && (c.Ko(b.Dm), c.eg = !0);
        c.kh && c.cl !== b.jk && (c.cl = b.jk, a.uniform1f(c.kh, b.jk));
        0 <= c.od && (a.enableVertexAttribArray(c.od), a.bindBuffer(a.ARRAY_BUFFER, b.Gj[b.we]), a.vertexAttribPointer(c.od, b.Ka ? 3 : 2, a.FLOAT, !1, 0, 0));
        0 <= c.zf && (a.enableVertexAttribArray(c.zf), a.bindBuffer(a.ARRAY_BUFFER, b.Aj[b.we]), a.vertexAttribPointer(c.zf, 2, a.FLOAT, !1, 0, 0))
    };
    n.prototype.Vv = function() {
        var a = this.aa;
        this.H.uniform4f(this.J.Og.zn, a[0], a[1], a[2], a[3])
    };
    n.prototype.$v = function() {
        var a, b, c = this.J.Og,
        g = this.H;
        a = this.aa;
        c.Ui && this.J.lg !== this.vd && (g.activeTexture(g.TEXTURE1), g.bindTexture(g.TEXTURE_2D, this.vd), this.J.lg = this.vd, g.activeTexture(g.TEXTURE0));
        var e = a[0];
        c.Bn && e !== c.Zq && (c.Zq = e, g.uniform1f(c.Bn, e));
        e = a[1];
        c.An && e !== c.Yq && (c.Yq = e, g.uniform1f(c.An, e));
        e = a[2];
        b = a[3]; ! c.tg || e === c.Tq && b === c.Uq || (c.Tq = e, c.Uq = b, g.uniform2f(c.tg, e, b));
        e = a[4];
        b = a[5]; ! c.sg || e === c.Rq && b === c.Sq || (c.Rq = e, c.Sq = b, g.uniform2f(c.sg, e, b));
        e = a[6];
        c.Ti && e !== c.Wq && (c.Wq = e, g.uniform1f(c.Ti, e));
        e = a[7];
        c.Si && e !== c.Vq && (c.Vq = e, g.uniform1f(c.Si, e));
        e = a[8];
        b = a[9]; ! c.Xi || e === c.dr && b === c.er || (c.dr = e, c.er = b, g.uniform2f(c.Xi, e, b));
        e = a[10];
        b = a[11]; ! c.Vi || e === c.$q && b === c.br || (c.$q = e, c.br = b, g.uniform2f(c.Vi, e, b));
        e = a[12];
        c.Wi && e !== c.cr && (c.cr = e, g.uniform1f(c.Wi, e));
        if (c.X.length) for (a = 0, b = c.X.length; a < b; a++) e = this.ls[a],
        e !== c.tn[a] && (c.tn[a] = e, g.uniform1f(c.X[a][1], e))
    };
    h.prototype.Mc = function() {
        this.ue === this.gf.length && this.gf.push(new n(0, this));
        return this.gf[this.ue++]
    };
    h.prototype.$f = function() {
        if (0 !== this.ue && !this.H.isContextLost()) {
            var a = this.H;
            0 < this.Zn && (a.bindBuffer(a.ARRAY_BUFFER, this.Yn), a.bufferSubData(a.ARRAY_BUFFER, 0, this.Nr.subarray(0, this.Zn)), b && 0 <= b.od && "<point>" === b.name && a.vertexAttribPointer(b.od, 4, a.FLOAT, !1, 0, 0));
            if (0 < this.Ye) {
                var b = this.Og;
                a.bindBuffer(a.ARRAY_BUFFER, this.Gj[this.we]);
                a.bufferSubData(a.ARRAY_BUFFER, 0, this.am.subarray(0, this.Ye));
                b && 0 <= b.od && "<point>" !== b.name && a.vertexAttribPointer(b.od, this.Ka ? 3 : 2, a.FLOAT, !1, 0, 0);
                a.bindBuffer(a.ARRAY_BUFFER, this.Aj[this.we]);
                a.bufferSubData(a.ARRAY_BUFFER, 0, this.Nl.subarray(0, this.Hh));
                b && 0 <= b.zf && "<point>" !== b.name && a.vertexAttribPointer(b.zf, 2, a.FLOAT, !1, 0, 0)
            }
            for (var c, a = 0,
            b = this.ue; a < b; a++) switch (c = this.gf[a], c.type) {
            case 1:
                c.Sv();
                break;
            case 2:
                c.aw();
                break;
            case 3:
                c.Yv();
                break;
            case 4:
                c.Uv();
                break;
            case 5:
                c.dw();
                break;
            case 6:
                c.Tv();
                break;
            case 7:
                c.Pv();
                break;
            case 8:
                c.Rv();
                break;
            case 9:
                c.Zv();
                break;
            case 10:
                c.$v();
                break;
            case 11:
                c.bw();
                break;
            case 12:
                c.Vv();
                break;
            case 13:
                c.Wv();
                break;
            case 14:
                c.Xv()
            }
            this.Zn = this.Hh = this.Ye = this.ue = 0;
            this.Lk = this.ic = !1;
            this.we++;
            4 <= this.we && (this.we = 0)
        }
    };
    h.prototype.Bh = function(a) {
        if (a !== this.Iq && !this.Ei) {
            var b = this.Mc();
            b.type = 3;
            this.Iq = b.Dr = a;
            this.ic = !1
        }
    };
    h.prototype.bd = function(a) {
        if (a !== this.kg) {
            var b = this.Mc();
            b.type = 2;
            this.kg = b.vd = a;
            this.ic = !1
        }
    };
    h.prototype.Ff = function(a, b) {
        if ((a !== this.Jq || b !== this.Hq) && !this.Ei) {
            var c = this.Mc();
            c.type = 4;
            c.qc = a;
            c.ae = b;
            this.Jq = a;
            this.Hq = b;
            this.ic = !1
        }
    };
    h.prototype.$r = function() {
        this.Ff(this.H.ONE, this.H.ONE_MINUS_SRC_ALPHA)
    };
    h.prototype.kj = function(a, b, c, g, e, k, l, d) {
        15992 <= this.Ye && this.$f();
        var f = this.Ye,
        h = this.Hh,
        m = this.am,
        u = this.Nl,
        n = this.Em;
        if (this.ic) this.gf[this.ue - 1].ae += 6;
        else {
            var q = this.Mc();
            q.type = 1;
            q.qc = this.Ka ? f: f / 2 * 3;
            q.ae = 6;
            this.ic = !0
        }
        this.Ka ? (m[f++] = a, m[f++] = b, m[f++] = n, m[f++] = c, m[f++] = g, m[f++] = n, m[f++] = e, m[f++] = k, m[f++] = n, m[f++] = l, m[f++] = d, m[f++] = n) : (m[f++] = a, m[f++] = b, m[f++] = c, m[f++] = g, m[f++] = e, m[f++] = k, m[f++] = l, m[f++] = d);
        u[h++] = 0;
        u[h++] = 0;
        u[h++] = 1;
        u[h++] = 0;
        u[h++] = 1;
        u[h++] = 1;
        u[h++] = 0;
        u[h++] = 1;
        this.Ye = f;
        this.Hh = h
    };
    h.prototype.Df = function(a, b, c, g, e, k, l, d, f) {
        15992 <= this.Ye && this.$f();
        var h = this.Ye,
        m = this.Hh,
        u = this.am,
        n = this.Nl,
        q = this.Em;
        if (this.ic) this.gf[this.ue - 1].ae += 6;
        else {
            var v = this.Mc();
            v.type = 1;
            v.qc = this.Ka ? h: h / 2 * 3;
            v.ae = 6;
            this.ic = !0
        }
        var v = f.left,
        r = f.top,
        p = f.right;
        f = f.bottom;
        this.Ka ? (u[h++] = a, u[h++] = b, u[h++] = q, u[h++] = c, u[h++] = g, u[h++] = q, u[h++] = e, u[h++] = k, u[h++] = q, u[h++] = l, u[h++] = d, u[h++] = q) : (u[h++] = a, u[h++] = b, u[h++] = c, u[h++] = g, u[h++] = e, u[h++] = k, u[h++] = l, u[h++] = d);
        n[m++] = v;
        n[m++] = r;
        n[m++] = p;
        n[m++] = r;
        n[m++] = p;
        n[m++] = f;
        n[m++] = v;
        n[m++] = f;
        this.Ye = h;
        this.Hh = m
    };
    h.prototype.Cc = function(a) {
        if (this.Pi !== a) {
            if (!this.Xa[a]) {
                if (0 === this.Pi) return;
                a = 0
            }
            var b = this.Mc();
            b.type = 9;
            this.Pi = b.qc = a;
            this.ic = !1
        }
    };
    h.prototype.ij = function(a) {
        a = this.Xa[a];
        return ! (!a.tg && !a.sg)
    };
    h.prototype.eo = function(a) {
        a = this.Xa[a];
        return !! (a.tg || a.sg || a.gk)
    };
    h.prototype.co = function(a) {
        return this.Xa[a].Zc
    };
    h.prototype.Ny = function(a) {
        a = this.Xa[a];
        return 0 !== a.ji || 0 !== a.ki
    };
    h.prototype.nx = function(a) {
        return this.Xa[a].ji
    };
    h.prototype.ox = function(a) {
        return this.Xa[a].ki
    };
    h.prototype.qx = function(a, b) {
        return this.Xa[a].X[b][2]
    };
    h.prototype.ul = function(a) {
        return this.Xa[a].Pj
    };
    h.prototype.Ch = function(a, b, c, g, e, k, l, d, f, h, m, u, n, q, v) {
        var r = this.Xa[this.Pi],
        p,
        t;
        if (r.Jx || v.length) {
            p = this.Mc();
            p.type = 10;
            p.aa ? nc(this.Xc, p.aa) : p.aa = mc();
            t = p.aa;
            t[0] = b;
            t[1] = c;
            t[2] = g;
            t[3] = e;
            t[4] = k;
            t[5] = l;
            t[6] = d;
            t[7] = f;
            t[8] = h;
            t[9] = m;
            t[10] = u;
            t[11] = n;
            t[12] = q;
            r.Ui ? p.vd = a: p.vd = null;
            if (v.length) for (c = p.ls, c.length = v.length, a = 0, b = v.length; a < b; a++) c[a] = v[a];
            this.ic = !1
        }
    };
    h.prototype.clear = function(a, b, c, g) {
        var e = this.Mc();
        e.type = 7;
        e.qc = 0;
        e.aa || (e.aa = mc());
        e.aa[0] = a;
        e.aa[1] = b;
        e.aa[2] = c;
        e.aa[3] = g;
        this.ic = !1
    };
    h.prototype.clearRect = function(a, b, c, g) {
        if (! (0 > c || 0 > g)) {
            var e = this.Mc();
            e.type = 7;
            e.qc = 1;
            e.aa || (e.aa = mc());
            e.aa[0] = a;
            e.aa[1] = b;
            e.aa[2] = c;
            e.aa[3] = g;
            this.ic = !1
        }
    };
    h.prototype.cs = function(a) {
        if (this.Ka && (a = !!a, this.Ei !== a)) {
            var b = this.Mc();
            b.type = 14;
            b.qc = a ? 1 : 0;
            this.ic = !1;
            this.Ei = a;
            this.yl = null;
            this.Ei ? this.Cc(2) : this.Cc(0)
        }
    };
    h.prototype.bs = function(a) {
        if (this.Ka) {
            var b = this.Mc();
            b.type = 13;
            b.qc = a ? 1 : 0;
            this.ic = !1
        }
    };
    h.prototype.fq = function() {
        nc(this.un, q);
        this.je();
        this.Sd();
        var a = this.width / 2,
        b = this.height / 2;
        this.kj( - a, b, a, b, a, -b, -a, -b);
        nc(q, this.Xc);
        this.Sd()
    };
    h.prototype.as = function(a, b, c) {
        this.Cc(3);
        var g = this.Mc();
        g.type = 12;
        g.aa || (g.aa = mc());
        g.aa[0] = a;
        g.aa[1] = b;
        g.aa[2] = c;
        g.aa[3] = 1;
        this.ic = !1
    };
    h.prototype.oz = function() {
        this.Cc(0)
    };
    h.prototype.Zy = function() {
        this.Cc(2)
    };
    h.prototype.My = function() {
        this.$f();
        this.H.flush()
    };
    var p = [],
    r = {};
    h.prototype.Iv = function() {
        A(p);
        r = {}
    };
    h.prototype.Xk = function(a, b, c) {
        var g;
        g = !1;
        b = !!b;
        var e = a.src + "," + g + "," + b + (g ? ",undefined": ""),
        k = null;
        if ("undefined" !== typeof a.src && r.hasOwnProperty(e)) return k = r[e],
        k.Wj++,
        k;
        this.$f();
        var l = this.H,
        d = ma(a.width) && ma(a.height),
        k = l.createTexture();
        l.bindTexture(l.TEXTURE_2D, k);
        l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0);
        var f = l.RGBA,
        h = l.RGBA,
        m = l.UNSIGNED_BYTE;
        if (c && !this.vf) switch (c) {
        case 1:
            h = f = l.RGB;
            break;
        case 2:
            m = l.UNSIGNED_SHORT_4_4_4_4;
            break;
        case 3:
            m = l.UNSIGNED_SHORT_5_5_5_1;
            break;
        case 4:
            h = f = l.RGB,
            m = l.UNSIGNED_SHORT_5_6_5
        }
        if (1 === this.version && !d && g) {
            c = document.createElement("canvas");
            c.width = na(a.width);
            c.height = na(a.height);
            var u = c.getContext("2d");
            "undefined" !== typeof u.imageSmoothingEnabled ? u.imageSmoothingEnabled = b: (u.webkitImageSmoothingEnabled = b, u.mozImageSmoothingEnabled = b, u.msImageSmoothingEnabled = b);
            u.drawImage(a, 0, 0, a.width, a.height, 0, 0, c.width, c.height);
            l.texImage2D(l.TEXTURE_2D, 0, f, h, m, c)
        } else l.texImage2D(l.TEXTURE_2D, 0, f, h, m, a);
        g ? (l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.REPEAT), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.REPEAT)) : (l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE));
        b ? (l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, l.LINEAR), (d || 2 <= this.version) && this.Tp ? (l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, l.LINEAR_MIPMAP_LINEAR), l.generateMipmap(l.TEXTURE_2D)) : l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, l.LINEAR)) : (l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, l.NEAREST), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, l.NEAREST));
        l.bindTexture(l.TEXTURE_2D, null);
        this.kg = null;
        k.Tf = a.width;
        k.Sf = a.height;
        k.Wj = 1;
        k.Hp = e;
        p.push(k);
        return r[e] = k
    };
    h.prototype.gd = function(a, b, c) {
        var g;
        this.$f();
        var e = this.H;
        this.vf && (g = !1);
        var k = e.createTexture();
        e.bindTexture(e.TEXTURE_2D, k);
        e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, a, b, 0, e.RGBA, g ? e.UNSIGNED_SHORT_4_4_4_4: e.UNSIGNED_BYTE, null);
        e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE);
        e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);
        e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, c ? e.LINEAR: e.NEAREST);
        e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, c ? e.LINEAR: e.NEAREST);
        e.bindTexture(e.TEXTURE_2D, null);
        this.kg = null;
        k.Tf = a;
        k.Sf = b;
        p.push(k);
        return k
    };
    h.prototype.deleteTexture = function(a) {
        a && ("undefined" !== typeof a.Wj && 1 < a.Wj ? a.Wj--:(this.$f(), a === this.kg && (this.H.bindTexture(this.H.TEXTURE_2D, null), this.kg = null), a === this.lg && (this.H.activeTexture(this.H.TEXTURE1), this.H.bindTexture(this.H.TEXTURE_2D, null), this.H.activeTexture(this.H.TEXTURE0), this.lg = null), Fa(p, a), "undefined" !== typeof a.Hp && delete r[a.Hp], this.H.deleteTexture(a)))
    };
    h.prototype.td = function(a) {
        if (a !== this.yl) {
            var b = this.Mc();
            b.type = 6;
            this.yl = b.vd = a;
            this.ic = !1
        }
    };
    ob = h
})(); (function() {
    function h(a) {
        if (a && (a.getContext || a.dc) && !a.c2runtime) {
            a.c2runtime = this;
            var b = this;
            this.Vc = (this.Mk = /crosswalk/i.test(navigator.userAgent) || /xwalk/i.test(navigator.userAgent) || !("undefined" === typeof window.c2isCrosswalk || !window.c2isCrosswalk)) || "undefined" !== typeof window.device && ("undefined" !== typeof window.device.cordova || "undefined" !== typeof window.device.phonegap) || "undefined" !== typeof window.c2iscordova && window.c2iscordova;
            this.jc = !!a.dc;
            this.zq = "undefined" !== typeof window.AppMobi || this.jc;
            this.nd = !!window.c2cocoonjs;
            this.Jd = !!window.c2ejecta;
            this.nd && (CocoonJS.App.onSuspended.addEventListener(function() {
                b.setSuspended(!0)
            }), CocoonJS.App.onActivated.addEventListener(function() {
                b.setSuspended(!1)
            }));
            this.Jd && (document.addEventListener("pagehide",
            function() {
                b.setSuspended(!0)
            }), document.addEventListener("pageshow",
            function() {
                b.setSuspended(!1)
            }), document.addEventListener("resize",
            function() {
                b.setSize(window.innerWidth, window.innerHeight)
            }));
            this.zb = this.jc || this.nd || this.Jd;
            this.Gi = /edge\//i.test(navigator.userAgent);
            this.vf = (/msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent) || /iemobile/i.test(navigator.userAgent)) && !this.Gi;
            this.Cq = /tizen/i.test(navigator.userAgent);
            this.Di = /android/i.test(navigator.userAgent) && !this.Cq && !this.vf && !this.Gi;
            this.Gq = (/iphone/i.test(navigator.userAgent) || /ipod/i.test(navigator.userAgent)) && !this.vf && !this.Gi;
            this.ay = /ipad/i.test(navigator.userAgent);
            this.fh = this.Gq || this.ay || this.Jd;
            this.kn = (/chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent)) && !this.vf && !this.Gi;
            this.yq = /amazonwebappplatform/i.test(navigator.userAgent);
            this.Ux = /firefox/i.test(navigator.userAgent);
            this.Xx = /safari/i.test(navigator.userAgent) && !this.kn && !this.vf && !this.Gi;
            this.Yx = /windows/i.test(navigator.userAgent);
            this.nn = "undefined" !== typeof window.c2nodewebkit || "undefined" !== typeof window.c2nwjs || /nodewebkit/i.test(navigator.userAgent) || /nwjs/i.test(navigator.userAgent);
            this.Eq = !("undefined" === typeof window.c2isWindows8 || !window.c2isWindows8);
            this.$x = !("undefined" === typeof window.c2isWindows8Capable || !window.c2isWindows8Capable);
            this.Ji = !("undefined" === typeof window.c2isWindowsPhone8 || !window.c2isWindowsPhone8);
            this.rn = !("undefined" === typeof window.c2isWindowsPhone81 || !window.c2isWindowsPhone81);
            this.Pk = !!window.cr_windows10;
            this.Dq = this.Eq || this.$x || this.rn || this.Pk;
            this.Sx = !("undefined" === typeof window.c2isBlackberry10 || !window.c2isBlackberry10);
            this.Kk = this.Di && !this.kn && !this.Mk && !this.Ux && !this.yq && !this.zb;
            this.devicePixelRatio = 1;
            this.Yg = this.Vc || this.Mk || this.zq || this.nd || this.Di || this.fh || this.Ji || this.rn || this.Sx || this.Cq || this.Jd;
            this.Yg || (this.Yg = /(blackberry|bb10|playbook|palm|symbian|nokia|windows\s+ce|phone|mobile|tablet|kindle|silk)/i.test(navigator.userAgent));
            this.Ok = !!(this.fh && this.Vc && window.webkit);
            "undefined" === typeof cr_is_preview || this.nn || "?nw" !== window.location.search && !/nodewebkit/i.test(navigator.userAgent) && !/nwjs/i.test(navigator.userAgent) || (this.nn = !0);
            this.canvas = a;
            this.Jp = document.getElementById("c2canvasdiv");
            this.J = this.H = null;
            this.an = "(unavailable)";
            this.Ka = !1;
            this.Yf = 0;
            this.Ta = null;
            this.vk = !1;
            this.tr = this.ur = 0;
            this.canvas.oncontextmenu = function(a) {
                a.preventDefault && a.preventDefault();
                return ! 1
            };
            this.canvas.onselectstart = function(a) {
                a.preventDefault && a.preventDefault();
                return ! 1
            };
            this.canvas.ontouchstart = function(a) {
                a.preventDefault && a.preventDefault();
                return ! 1
            };
            this.jc && (window.c2runtime = this);
            this.nn && (window.ondragover = function(a) {
                a.preventDefault();
                return ! 1
            },
            window.ondrop = function(a) {
                a.preventDefault();
                return ! 1
            },
            window.nwgui && window.nwgui.App.clearCache && window.nwgui.App.clearCache());
            this.Kk && "undefined" !== typeof jQuery && jQuery("canvas").parents("*").css("overflow", "visible");
            this.width = a.width;
            this.height = a.height;
            this.M = this.width;
            this.L = this.height;
            this.hk = this.width;
            this.ci = this.height;
            this.ih = window.innerWidth;
            this.hh = window.innerHeight;
            this.ya = !0;
            this.Hi = !1;
            Date.now || (Date.now = function() {
                return + new Date
            });
            this.plugins = [];
            this.types = {};
            this.F = [];
            this.Sa = [];
            this.yn = {};
            this.Ld = [];
            this.Mm = {};
            this.Ce = [];
            this.Qh = [];
            this.Vl = [];
            this.nm = [];
            this.wv = [];
            this.rs = null;
            this.Wf = {};
            this.mn = this.tf = !1;
            this.Kd = 0;
            this.ln = this.qn = !1;
            this.Hd = [];
            this.Fi = !1;
            this.Vk = this.qo = "";
            this.Bb = null;
            this.Ke = "";
            this.yj = this.os = !1;
            this.uk = [];
            this.Xf = this.pf = 0;
            this.kr = 30;
            this.Cm = this.Yi = 0;
            this.Lh = 1;
            this.Vb = new cb;
            this.Ze = new cb;
            this.fl = this.xk = this.ii = this.Cg = this.ng = this.Qm = this.Sk = 0;
            this.Uf = null;
            this.ok = [];
            this.Lm = [];
            this.qk = -1;
            this.Cn = [[]];
            this.Fo = this.al = 0;
            this.wl(null);
            this.Zi = [];
            this.$i = -1;
            this.or = this.cj = 0;
            this.xn = !0;
            this.li = 0;
            this.zj = [];
            this.Co = this.fo = -1;
            this.gh = !0;
            this.Zk = 0;
            this.Nk = !1;
            this.rz = 0;
            this.Ig = null;
            this.Je = this.pq = !1;
            this.sr = new ca;
            this.Ln = new ca;
            this.Mn = new ca;
            this.yg = [];
            this.Pd = new eb([]);
            this.zo = new eb([]);
            this.ff = [];
            this.xi = {};
            this.lf = {};
            this.ef = {};
            this.Ph = {};
            this.Ep = {};
            this.Nq = this.Uk = this.ob = this.Ab = this.Mq = this.Tk = this.ma = null;
            this.Nh = this.sn = !1;
            this.Rm = [null, null];
            this.Tg = 0;
            this.Om = "";
            this.Ne = {};
            this.vj = this.xf = null;
            this.qs = "";
            this.el = [];
            this.Yy()
        }
    }
    function f(a, b) {
        return 128 >= b ? a[3] : 256 >= b ? a[2] : 512 >= b ? a[1] : a[0]
    }
    function d() {
        try {
            return !! window.indexedDB
        } catch(a) {
            return ! 1
        }
    }
    function n(a) {
        a.target.result.createObjectStore("saves", {
            keyPath: "slot"
        })
    }
    function q(a, b, g, e) {
        try {
            var c = indexedDB.open("_C2SaveStates");
            c.onupgradeneeded = n;
            c.onerror = e;
            c.onsuccess = function(c) {
                c = c.target.result;
                c.onerror = e;
                c.transaction(["saves"], "readwrite").objectStore("saves").put({
                    slot: a,
                    data: b
                }).onsuccess = g
            }
        } catch(m) {
            e(m)
        }
    }
    function p(a, b, g) {
        try {
            var e = indexedDB.open("_C2SaveStates");
            e.onupgradeneeded = n;
            e.onerror = g;
            e.onsuccess = function(e) {
                e = e.target.result;
                e.onerror = g;
                var c = e.transaction(["saves"]).objectStore("saves").get(a);
                c.onsuccess = function() {
                    c.result ? b(c.result.data) : b(null)
                }
            }
        } catch(c) {
            g(c)
        }
    }
    function r() {
        ga("Reloading for continuous preview");
        window.c2cocoonjs ? CocoonJS.App.reload() : -1 < window.location.search.indexOf("continuous") ? window.location.reload(!0) : window.location = window.location + "?continuous"
    }
    function a(a) {
        var b, g = {};
        for (b in a) ! a.hasOwnProperty(b) || a[b] instanceof ca || a[b] && "undefined" !== typeof a[b].OA || "spriteCreatedDestroyCallback" !== b && (g[b] = a[b]);
        return g
    }
    var b = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame;
    h.prototype.Yy = function() {
        var a = this;
        if (this.Ok) this.Uw(function(b) {
            a.Ri(JSON.parse(b))
        },
        function() {
            alert("Error fetching data.js")
        });
        else {
            var b;
            this.Ji ? b = new ActiveXObject("Microsoft.XMLHTTP") : b = new XMLHttpRequest;
            var g = "data.js";
            if (this.Eq || this.Ji || this.rn || this.Pk) g = "data.json";
            b.open("GET", g, !0);
            var e = !1;
            if (!this.zb && "response" in b && "responseType" in b) try {
                b.responseType = "json",
                e = "json" === b.responseType
            } catch(c) {
                e = !1
            }
            if (!e && "responseType" in b) try {
                b.responseType = "text"
            } catch(m) {}
            if ("overrideMimeType" in b) try {
                b.overrideMimeType("application/json; charset=utf-8")
            } catch(l) {}
            this.Ji ? b.onreadystatechange = function() {
                4 === b.readyState && a.Ri(JSON.parse(b.responseText))
            }: (b.onload = function() {
                if (e) a.Ri(b.response);
                else if (a.Jd) {
                    var g = b.responseText,
                    g = g.substr(g.indexOf("{"));
                    a.Ri(JSON.parse(g))
                } else a.Ri(JSON.parse(b.responseText))
            },
            b.onerror = function(a) {
                ha("Error requesting " + g + ":");
                ha(a)
            });
            b.send()
        }
    };
    h.prototype.Nx = function() {
        var a = this,
        b, g, e, c, m, l, k, d, f;
        this.jg = (!this.zb || this.Jd || this.Vc) && this.Kz && !this.Kk;
        0 === this.uc && this.fh && (this.jg = !1);
        this.devicePixelRatio = this.jg ? window.devicePixelRatio || window.webkitDevicePixelRatio || window.mozDevicePixelRatio || window.msDevicePixelRatio || 1 : 1;
        this.ac();
        0 < this.uc && this.setSize(window.innerWidth, window.innerHeight, !0);
        this.canvas.addEventListener("webglcontextlost",
        function(b) {
            b.preventDefault();
            a.vy();
            ga("[Construct 2] WebGL context lost");
            window.cr_setSuspended(!0)
        },
        !1);
        this.canvas.addEventListener("webglcontextrestored",
        function() {
            a.J.tq();
            a.J.Se(a.J.width, a.J.height, !0);
            a.Ab = null;
            a.ob = null;
            a.Rm[0] = null;
            a.Rm[1] = null;
            a.wy();
            a.ya = !0;
            ga("[Construct 2] WebGL context restored");
            window.cr_setSuspended(!1)
        },
        !1);
        try {
            this.lw && (this.nd || this.Jd || !this.zb) && (b = {
                alpha: !0,
                depth: !1,
                antialias: !1,
                powerPreference: "high-performance",
                failIfMajorPerformanceCaveat: !0
            },
            this.Di || (this.H = this.canvas.getContext("webgl2", b)), this.H || (this.H = this.canvas.getContext("webgl", b) || this.canvas.getContext("experimental-webgl", b)))
        } catch(h) {}
        if (this.H) {
            if (b = this.H.getExtension("WEBGL_debug_renderer_info")) this.an = this.H.getParameter(b.UNMASKED_RENDERER_WEBGL) + " [" + this.H.getParameter(b.UNMASKED_VENDOR_WEBGL) + "]";
            this.Ka && (this.an += " [front-to-back enabled]");
            this.zb || (this.Xb = document.createElement("canvas"), jQuery(this.Xb).appendTo(this.canvas.parentNode), this.Xb.oncontextmenu = function() {
                return ! 1
            },
            this.Xb.onselectstart = function() {
                return ! 1
            },
            this.Xb.width = Math.round(this.hk * this.devicePixelRatio), this.Xb.height = Math.round(this.ci * this.devicePixelRatio), jQuery(this.Xb).css({
                width: this.hk + "px",
                height: this.ci + "px"
            }), this.Pr(), this.Vn = this.Xb.getContext("2d"));
            this.J = new ob(this.H, this.Yg, this.Ka);
            this.J.Se(this.canvas.width, this.canvas.height);
            this.J.Tp = 0 !== this.ew;
            this.Ta = null;
            b = 0;
            for (g = this.F.length; b < g; b++) for (m = this.F[b], e = 0, c = m.S.length; e < c; e++) k = m.S[e],
            k.rb = this.J.$m(k.id),
            k.Zc = this.J.co(k.rb),
            this.Nh = this.Nh || this.J.ij(k.rb);
            b = 0;
            for (g = this.Ld.length; b < g; b++) {
                d = this.Ld[b];
                e = 0;
                for (c = d.S.length; e < c; e++) k = d.S[e],
                k.rb = this.J.$m(k.id),
                k.Zc = this.J.co(k.rb);
                d.Rd();
                e = 0;
                for (c = d.W.length; e < c; e++) {
                    f = d.W[e];
                    m = 0;
                    for (l = f.S.length; m < l; m++) k = f.S[m],
                    k.rb = this.J.$m(k.id),
                    k.Zc = this.J.co(k.rb),
                    this.Nh = this.Nh || this.J.ij(k.rb);
                    f.Rd()
                }
            }
        } else {
            if (0 < this.uc && this.jc) {
                this.canvas = null;
                document.oncontextmenu = function() {
                    return ! 1
                };
                document.onselectstart = function() {
                    return ! 1
                };
                this.Ta = AppMobi.canvas.getContext("2d");
                try {
                    this.Ta.samplingMode = this.Va ? "smooth": "sharp",
                    this.Ta.globalScale = 1,
                    this.Ta.HTML5CompatibilityMode = !0,
                    this.Ta.imageSmoothingEnabled = this.Va
                } catch(u) {}
                0 !== this.width && 0 !== this.height && (this.Ta.width = this.width, this.Ta.height = this.height)
            }
            this.Ta || (this.nd ? (b = {
                antialias: !!this.Va,
                alpha: !0
            },
            this.Ta = this.canvas.getContext("2d", b)) : (b = {
                alpha: !0
            },
            this.Ta = this.canvas.getContext("2d", b)), this.Dl(this.Ta, this.Va));
            this.Vn = this.Xb = null
        }
        this.ys = function(b) {
            a.Mb(!1, b)
        };
        window == window.top || this.zb || this.Dq || this.Ji || (document.addEventListener("mousedown",
        function() {
            window.focus()
        },
        !0), document.addEventListener("touchstart",
        function() {
            window.focus()
        },
        !0));
        "undefined" !== typeof cr_is_preview && (this.nd && console.log("[Construct 2] In preview-over-wifi via CocoonJS mode"), -1 < window.location.search.indexOf("continuous") && (ga("Reloading for continuous preview"), this.Vk = "__c2_continuouspreview", this.yj = !0), this.Ey && !this.Yg && (jQuery(window).focus(function() {
            a.setSuspended(!1)
        }), jQuery(window).blur(function() {
            var b = window.parent;
            b && b.document.hasFocus() || a.setSuspended(!0)
        })));
        window.addEventListener("blur",
        function() {});
        this.zb || (b = function(a) {
            if (nb(a) && document.activeElement && document.activeElement !== document.getElementsByTagName("body")[0] && document.activeElement.blur) try {
                document.activeElement.blur()
            } catch(b) {}
        },
        "undefined" !== typeof PointerEvent ? document.addEventListener("pointerdown", b) : window.navigator.msPointerEnabled ? document.addEventListener("MSPointerDown", b) : document.addEventListener("touchstart", b), document.addEventListener("mousedown", b));
        0 === this.uc && this.jg && 1 < this.devicePixelRatio && this.setSize(this.Db, this.Cb, !0);
        this.Cs();
        this.Gx();
        this.go();
        this.xa = {}
    };
    h.prototype.setSize = function(a, b, g) {
        var e = 0,
        c = 0,
        m = 0,
        l = 0,
        l = 0;
        if (this.ih !== a || this.hh !== b || g) {
            this.ih = a;
            this.hh = b;
            var k = this.uc;
            if ((m = (document.mozFullScreen || document.webkitIsFullScreen || !!document.msFullscreenElement || document.fullScreen || this.Nk) && !this.Vc) || 0 !== this.uc || g) m && (k = this.Tg),
            g = this.devicePixelRatio,
            4 <= k ? (m = this.Db / this.Cb, a / b > m ? (m *= b, 5 === k ? (l = m * g / this.Db, 1 < l ? l = Math.floor(l) : 1 > l && (l = 1 / Math.ceil(1 / l)), m = this.Db * l / g, l = this.Cb * l / g, e = (a - m) / 2, c = (b - l) / 2, a = m, b = l) : (e = (a - m) / 2, a = m)) : (l = a / m, 5 === k ? (l = l * g / this.Cb, 1 < l ? l = Math.floor(l) : 1 > l && (l = 1 / Math.ceil(1 / l)), m = this.Db * l / g, l = this.Cb * l / g, e = (a - m) / 2, c = (b - l) / 2, a = m) : c = (b - l) / 2, b = l)) : m && 0 === k && (e = Math.floor((a - this.Db) / 2), c = Math.floor((b - this.Cb) / 2), a = this.Db, b = this.Cb),
            2 > k && (this.Yh = g),
            this.hk = Math.round(a),
            this.ci = Math.round(b),
            this.width = Math.round(a * g),
            this.height = Math.round(b * g),
            this.ya = !0,
            this.Os ? (this.M = this.width, this.L = this.height, this.Sc = !0) : this.width < this.Db && this.height < this.Cb || 1 === k ? (this.M = this.width, this.L = this.height, this.Sc = !0) : (this.M = this.Db, this.L = this.Cb, this.Sc = !1, 2 === k ? (m = this.Db / this.Cb, k = this.ih / this.hh, k < m ? this.M = this.L * k: k > m && (this.L = this.M / k)) : 3 === k && (m = this.Db / this.Cb, k = this.ih / this.hh, k > m ? this.M = this.L * k: k < m && (this.L = this.M / k))),
            this.Jp && !this.zb && (jQuery(this.Jp).css({
                width: Math.round(a) + "px",
                height: Math.round(b) + "px",
                "margin-left": Math.floor(e) + "px",
                "margin-top": Math.floor(c) + "px"
            }), "undefined" !== typeof cr_is_preview && jQuery("#borderwrap").css({
                width: Math.round(a) + "px",
                height: Math.round(b) + "px"
            })),
            this.canvas && (this.canvas.width = Math.round(a * g), this.canvas.height = Math.round(b * g), this.Jd ? (this.canvas.style.left = Math.floor(e) + "px", this.canvas.style.top = Math.floor(c) + "px", this.canvas.style.width = Math.round(a) + "px", this.canvas.style.height = Math.round(b) + "px") : this.jg && !this.zb && (this.canvas.style.width = Math.round(a) + "px", this.canvas.style.height = Math.round(b) + "px")),
            this.Xb && (this.Xb.width = Math.round(a * g), this.Xb.height = Math.round(b * g), this.Xb.style.width = this.hk + "px", this.Xb.style.height = this.ci + "px"),
            this.J && this.J.Se(Math.round(a * g), Math.round(b * g)),
            this.jc && this.Ta && (this.Ta.width = Math.round(a), this.Ta.height = Math.round(b)),
            this.Ta && this.Dl(this.Ta, this.Va),
            this.Cs(),
            this.Gq && !this.Vc && window.scrollTo(0, 0)
        }
    };
    h.prototype.Cs = function() {
        if (this.zv && 0 !== this.Un) {
            var a = "portrait";
            2 === this.Un && (a = "landscape");
            try {
                screen.orientation && screen.orientation.lock ? screen.orientation.lock(a).
                catch(function() {}) : screen.lockOrientation ? screen.lockOrientation(a) : screen.webkitLockOrientation ? screen.webkitLockOrientation(a) : screen.mozLockOrientation ? screen.mozLockOrientation(a) : screen.msLockOrientation && screen.msLockOrientation(a)
            } catch(b) {
                console && console.warn && console.warn("Failed to lock orientation: ", b)
            }
        }
    };
    h.prototype.vy = function() {
        this.J.Iv();
        this.sn = !0;
        var a, b, g;
        a = 0;
        for (b = this.F.length; a < b; a++) g = this.F[a],
        g.Qn && g.Qn()
    };
    h.prototype.wy = function() {
        this.sn = !1;
        var a, b, g;
        a = 0;
        for (b = this.F.length; a < b; a++) g = this.F[a],
        g.Rn && g.Rn()
    };
    h.prototype.Pr = function() {
        if (!this.zb) {
            var a = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || document.msFullscreenElement || this.Nk) && !this.Vc ? jQuery(this.canvas).offset() : jQuery(this.canvas).position();
            a.position = "absolute";
            jQuery(this.Xb).css(a)
        }
    };
    var c = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame || window.oCancelAnimationFrame;
    h.prototype.setSuspended = function(a) {
        var b;
        if (a && !this.Hi) for (ga("[Construct 2] Suspending"), this.Hi = !0, -1 !== this.fo && c && c(this.fo), -1 !== this.Co && clearTimeout(this.Co), a = 0, b = this.zj.length; a < b; a++) this.zj[a](!0);
        else if (!a && this.Hi) {
            ga("[Construct 2] Resuming");
            this.Hi = !1;
            this.Sk = Ya();
            this.ng = Ya();
            a = this.Yi = this.xk = 0;
            for (b = this.zj.length; a < b; a++) this.zj[a](!1);
            this.Mb(!1)
        }
    };
    h.prototype.zp = function(a) {
        this.zj.push(a)
    };
    h.prototype.bf = function(a) {
        return this.el[a]
    };
    h.prototype.Ri = function(a) {
        a && a.project || ha("Project model unavailable");
        a = a.project;
        this.name = a[0];
        this.aq = a[1];
        this.uc = a[12];
        this.Db = a[10];
        this.Cb = a[11];
        this.Kr = this.Db / 2;
        this.Lr = this.Cb / 2;
        this.zb && !this.Jd && (4 <= a[12] || 0 === a[12]) && (ga("[Construct 2] Letterbox scale fullscreen modes are not supported on this platform - falling back to 'Scale outer'"), this.uc = 3);
        this.No = a[18];
        this.yf = a[19];
        if (0 === this.yf) {
            var b = new Image;
            b.crossOrigin = "anonymous";
            this.es(b, "");
            this.xf = {
                bl: b
            }
        } else if (4 === this.yf) {
            b = new Image;
            b.src = "";
            var g = new Image;
            g.src = "";
            var e = new Image;
            e.src = "";
            var c = new Image;
            c.src = "";
            var m = new Image;
            m.src = "";
            var l = new Image;
            l.src = "";
            var k = new Image;
            k.src = "";
            var d = new Image;
            d.src = "";
            var f = new Image;
            f.src = "";
            var h = new Image;
            h.src = "";
            var u = new Image;
            u.src = "";
            var v = new Image;
            v.src = "";
            this.xf = {
                bl: [b, g, e, c],
                Jy: [m, l, k, d],
                Nz: [f, h, u, v]
            }
        }
        this.cj = a[21];
        this.el = rc();
        this.ke = new G(this);
        b = 0;
        for (g = a[2].length; b < g; b++) k = a[2][b],
        e = this.bf(k[0]),
        pb(k, e.prototype),
        d = new e(this),
        d.Hl = k[1],
        d.wf = k[2],
        d.TA = k[5],
        d.lr = k[9],
        d.O && d.O(),
        this.plugins.push(d);
        this.el = rc();
        b = 0;
        for (g = a[3].length; b < g; b++) {
            k = a[3][b];
            m = this.bf(k[1]);
            d = null;
            e = 0;
            for (c = this.plugins.length; e < c; e++) if (this.plugins[e] instanceof m) {
                d = this.plugins[e];
                break
            }
            f = new d.za(d);
            f.name = k[0];
            f.T = k[2];
            f.jn = k[3].slice(0);
            f.Mz = k[3].length;
            f.Av = k[4];
            f.Yw = k[5];
            f.ga = k[11];
            f.T ? (f.vg = [], f.De = this.li++, f.Na = null) : (f.vg = null, f.De = -1, f.Na = []);
            f.sk = null;
            f.Rg = null;
            f.Vp = null;
            f.nc = !1;
            f.Gc = null;
            k[6] ? (f.Ao = k[6][0], f.ws = k[6][1], f.Bo = k[6][2]) : (f.Ao = null, f.ws = 0, f.Bo = 0);
            k[7] ? f.Fc = k[7] : f.Fc = null;
            f.index = b;
            f.d = [];
            f.lk = [];
            f.We = [new qb(f)];
            f.Xd = 0;
            f.jd = null;
            f.Nv = 0;
            f.Fh = !0;
            f.Wl = rb;
            f.lq = sb;
            f.kx = tb;
            f.U = ub;
            f.jj = vb;
            f.Cf = wb;
            f.Md = xb;
            f.zk = yb;
            f.Sm = zb;
            f.Wm = Ab;
            f.dd = Db;
            f.Xm = Eb;
            f.ck = new fb(this.Db, this.Cb);
            f.Qj = !0;
            f.Rj = !1;
            f.xa = {};
            f.toString = Fb;
            f.Sa = [];
            e = 0;
            for (c = k[8].length; e < c; e++) {
                h = k[8][e];
                u = this.bf(h[1]);
                v = null;
                m = 0;
                for (l = this.Sa.length; m < l; m++) if (this.Sa[m] instanceof u) {
                    v = this.Sa[m];
                    break
                }
                v || (v = new u(this), v.In = [], v.Hn = new ca, v.O && v.O(), this.Sa.push(v), jc.qz && v instanceof jc.qz && (this.rs = v)); - 1 === v.In.indexOf(f) && v.In.push(f);
                m = new v.za(v, f);
                m.name = h[0];
                m.ga = h[2];
                m.O();
                f.Sa.push(m)
            }
            f.global = k[9];
            f.pn = k[10];
            f.S = [];
            e = 0;
            for (c = k[12].length; e < c; e++) f.S.push({
                id: k[12][e][0],
                name: k[12][e][1],
                rb: -1,
                Zc: !1,
                Qa: !0,
                index: e
            });
            f.iB = k[13];
            this.No && !f.T && !f.pn && d.wf || f.O();
            f.name && (this.types[f.name] = f);
            this.F.push(f);
            d.Hl && (e = new d.ja(f), e.uid = this.cj++, e.Sr = this.or++, e.gg = 0, e.vi = Gb, e.toString = Hb, e.C = k[14], e.O(), f.d.push(e), this.Ne[e.uid.toString()] = e)
        }
        b = 0;
        for (g = a[4].length; b < g; b++) for (m = a[4][b], l = this.F[m[0]], e = 1, c = m.length; e < c; e++) k = this.F[m[e]],
        k.Na.push(l),
        l.vg.push(k);
        b = 0;
        for (g = a[28].length; b < g; b++) {
            m = a[28][b];
            l = [];
            e = 0;
            for (c = m.length; e < c; e++) l.push(this.F[m[e]]);
            e = 0;
            for (c = l.length; e < c; e++) l[e].nc = !0,
            l[e].Gc = l
        }
        if (0 < this.li) for (b = 0, g = this.F.length; b < g; b++) if (k = this.F[b], !k.T && k.Na.length) {
            k.sk = Array(this.li);
            k.Rg = Array(this.li);
            k.Vp = Array(this.li);
            f = [];
            e = v = u = h = 0;
            for (c = k.Na.length; e < c; e++) for (d = k.Na[e], k.sk[d.De] = h, h += d.Mz, k.Rg[d.De] = u, u += d.Av, k.Vp[d.De] = v, v += d.Yw, m = 0, l = d.S.length; m < l; m++) f.push(ya({},
            d.S[m]));
            k.S = f.concat(k.S);
            e = 0;
            for (c = k.S.length; e < c; e++) k.S[e].index = e
        }
        b = 0;
        for (g = a[5].length; b < g; b++) k = a[5][b],
        e = new Ib(this, k),
        this.yn[e.name] = e,
        this.Ld.push(e);
        b = 0;
        for (g = a[6].length; b < g; b++) k = a[6][b],
        e = new Jb(this, k),
        this.Mm[e.name] = e,
        this.Ce.push(e);
        b = 0;
        for (g = this.Ce.length; b < g; b++) this.Ce[b].gb();
        b = 0;
        for (g = this.Ce.length; b < g; b++) this.Ce[b].Jo();
        b = 0;
        for (g = this.Vl.length; b < g; b++) this.Vl[b].gb();
        A(this.Vl);
        this.yv = a[7];
        this.Om = a[8];
        this.Qe = a[9];
        this.Yh = 1;
        this.lw = a[13];
        this.Va = a[14];
        this.Mp = a[15];
        this.Kz = a[17];
        this.Un = a[20];
        this.zv = 0 < this.Un;
        this.Ey = a[22];
        this.Sc = this.Os = a[23];
        this.ew = a[24];
        this.Ky = a[25];
        this.Ka = a[27] && !this.vf;
        this.Il = Date.now();
        A(this.el);
        this.Nx()
    };
    var g = !1,
    e = 0,
    k = [];
    h.prototype.Sy = function(a, b) {
        function g() {
            e--;
            c.gr()
        }
        var c = this;
        a.addEventListener("load", g);
        a.addEventListener("error", g);
        k.push([a, b]);
        this.gr()
    };
    h.prototype.gr = function() {
        for (var a; k.length && 100 > e;) e++,
        a = k.shift(),
        this.es(a[0], a[1])
    };
    h.prototype.Ns = function(a, b) {
        a.cocoonLazyLoad = !0;
        a.onerror = function(b) {
            g = a.Gp = !0;
            console && console.error && console.error("Error loading image '" + a.src + "': ", b)
        };
        this.Jd ? a.src = b: a.src || ("undefined" !== typeof XAPKReader ? XAPKReader.get(b,
        function(b) {
            a.src = b
        },
        function(e) {
            g = a.Gp = !0;
            console && console.error && console.error("Error extracting image '" + b + "' from expansion file: ", e)
        }) : (a.crossOrigin = "anonymous", this.Sy(a, b)));
        this.Qh.push(a)
    };
    h.prototype.Ww = function(a) {
        var b, g;
        b = 0;
        for (g = this.Qh.length; b < g; b++) if (this.Qh[b].Kv === a) return this.Qh[b];
        return null
    };
    var l = 0,
    w = !1;
    h.prototype.Gx = function() {
        this.Ig && (l = this.Ig.lz(this.yv))
    };
    h.prototype.Cp = function() {
        var a = l,
        b = 0,
        g = 0,
        e = !0,
        c, m, g = 0;
        for (c = this.Qh.length; g < c; g++) {
            m = this.Qh[g];
            var k = m.Jv;
            if (!k || 0 >= k) k = 5E4;
            a += k;
            m.src && (m.complete || m.loaded) && !m.Gp ? b += k: e = !1
        }
        e && this.Ky && this.Ig && (w || (this.Ig.sz(), w = !0), g = this.Ig.mx(), b += g, g < l && (e = !1));
        this.ba = 0 == a ? 1 : b / a;
        return e
    };
    var M = !1;
    h.prototype.go = function() {
        if (this.Ta || this.J) {
            var a = this.Ta || this.Vn;
            this.Xb && this.Pr();
            var e = window.innerWidth,
            c = window.innerHeight;
            this.ih === e && this.hh === c || this.setSize(e, c);
            this.ba = 0;
            this.Lq = -1;
            var m = this;
            if (this.Cp() && (4 !== this.yf || M)) this.Hx();
            else {
                c = Date.now() - this.Il;
                if (a) {
                    var k = this.width,
                    l = this.height,
                    e = this.devicePixelRatio;
                    if (3 > this.yf && (this.nd || 500 <= c && this.Lq != this.ba)) {
                        a.clearRect(0, 0, k, l);
                        var c = k / 2,
                        l = l / 2,
                        k = 0 === this.yf && this.xf.bl.complete,
                        d = 40 * e,
                        f = 0,
                        h = 80 * e,
                        u;
                        if (k) {
                            var v = this.xf.bl,
                            h = v.width * e;
                            u = v.height * e;
                            d = h / 2;
                            f = u / 2;
                            a.drawImage(v, sa(c - d), sa(l - f), h, u)
                        }
                        1 >= this.yf ? (c = sa(c - d) + .5, l = sa(l + (f + (k ? 12 * e: 0))) + .5, a.fillStyle = g ? "red": "DodgerBlue", a.fillRect(c, l, Math.floor(h * this.ba), 6 * e), a.strokeStyle = "black", a.strokeRect(c, l, h, 6 * e), a.strokeStyle = "white", a.strokeRect(c - 1 * e, l - 1 * e, h + 2 * e, 8 * e)) : 2 === this.yf && (a.font = this.Jd ? "12pt ArialMT": "12pt Arial", a.fillStyle = g ? "#f00": "#999", a.hB = "middle", e = Math.round(100 * this.ba) + "%", k = a.measureText ? a.measureText(e) : null, a.fillText(e, c - (k ? k.width: 0) / 2, l));
                        this.Lq = this.ba
                    } else if (4 === this.yf) {
                        this.jw(a);
                        b ? b(function() {
                            m.go()
                        }) : setTimeout(function() {
                            m.go()
                        },
                        16);
                        return
                    }
                }
                setTimeout(function() {
                    m.go()
                },
                this.nd ? 10 : 100)
            }
        }
    };
    var P = -1,
    m = "undefined" === typeof cr_is_preview ? 200 : 0,
    u = !0,
    I = !1,
    T = 0,
    v = 0,
    H = "undefined" === typeof cr_is_preview ? 3E3: 0,
    C = null,
    t = null,
    F = 0;
    h.prototype.jw = function(a) {
        if (!M) {
            for (var b = Math.ceil(this.width), e = Math.ceil(this.height), c = this.xf.bl, k = this.xf.Jy, l = this.xf.Nz, d = 0; 4 > d; ++d) if (!c[d].complete || !k[d].complete || !l[d].complete) return;
            0 === F && (P = Date.now());
            var d = Date.now(),
            h = !1,
            w = a,
            n,
            q;
            u || I ? (a.clearRect(0, 0, b, e), C && C.width === b && C.height === e || (C = document.createElement("canvas"), C.width = b, C.height = e, t = C.getContext("2d")), w = t, h = !0, u && 1 === F && (P = Date.now())) : a.globalAlpha = 1;
            w.fillStyle = "#333333";
            w.fillRect(0, 0, b, e);
            256 < this.ci ? (n = Ga(.22 * e, 105, .6 * b), q = .25 * n, w.drawImage(f(k, n), .5 * b - n / 2, .2 * e - q / 2, n, q), q = n = Math.min(.395 * e, .95 * b), w.drawImage(f(c, n), .5 * b - n / 2, .485 * e - q / 2, n, q), n = Ga(.22 * e, 105, .6 * b), q = .25 * n, w.drawImage(f(l, n), .5 * b - n / 2, .868 * e - q / 2, n, q), w.fillStyle = "#3C3C3C", n = b, q = Math.max(.005 * e, 2), w.fillRect(0, .8 * e - q / 2, n, q), w.fillStyle = g ? "red": "#E0FF65", n = b * this.ba, w.fillRect(.5 * b - n / 2, .8 * e - q / 2, n, q)) : (q = n = .55 * e, w.drawImage(f(c, n), .5 * b - n / 2, .45 * e - q / 2, n, q), w.fillStyle = "#3C3C3C", n = b, q = Math.max(.005 * e, 2), w.fillRect(0, .85 * e - q / 2, n, q), w.fillStyle = g ? "red": "#E0FF65", n = b * this.ba, w.fillRect(.5 * b - n / 2, .85 * e - q / 2, n, q));
            h && (u ? a.globalAlpha = 0 === F ? 0 : Math.min((d - P) / 300, 1) : I && (a.globalAlpha = Math.max(1 - (d - v) / 300, 0)), a.drawImage(C, 0, 0, b, e));
            u && 300 <= d - P && 2 <= F && (u = !1, T = d); ! u && d - T >= H && !I && 1 <= this.ba && (I = !0, v = d);
            if (I && d - v >= 300 + m || "undefined" !== typeof cr_is_preview && 1 <= this.ba && 500 > Date.now() - P) M = !0,
            I = u = !1,
            this.xf = t = C = null; ++F
        }
    };
    h.prototype.Hx = function() {
        this.Xb && (this.canvas.parentNode.removeChild(this.Xb), this.Xb = this.Vn = null);
        this.Il = Date.now();
        this.ng = Ya();
        var a, b, g;
        if (this.No) for (a = 0, b = this.F.length; a < b; a++) g = this.F[a],
        g.T || g.pn || !g.Ca.wf || g.O();
        else this.gh = !1;
        a = 0;
        for (b = this.Ld.length; a < b; a++) this.Ld[a].Lv();
        2 <= this.uc && (a = this.Db / this.Cb, b = this.width / this.height, this.Yh = 2 !== this.uc && b > a || 2 === this.uc && b < a ? this.height / this.Cb: this.width / this.Db);
        this.aq ? this.yn[this.aq].xo() : this.Ld[0].xo();
        this.No || (this.Zk = 1, this.trigger(G.prototype.j.ep, null), window.C2_RegisterSW && window.C2_RegisterSW());
        navigator.splashscreen && navigator.splashscreen.hide && navigator.splashscreen.hide();
        a = 0;
        for (b = this.F.length; a < b; a++) g = this.F[a],
        g.wr && g.wr();
        document.hidden || document.webkitHidden || document.mozHidden || document.msHidden ? window.cr_setSuspended(!0) : this.Mb(!1);
        this.jc && AppMobi.webview.execute("onGameReady();")
    };
    h.prototype.Mb = function(a, g, e) {
        if (this.ma) {
            var c = Ya();
            if (e || !this.Hi || a) {
                a || (b ? this.fo = b(this.ys) : this.Co = setTimeout(this.ys, this.Yg ? 1 : 16));
                g = g || c;
                var m = this.uc; ((e = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || !!document.msFullscreenElement) && !this.Vc) || this.Nk) && 0 < this.Tg && (m = this.Tg);
                if (0 < m) {
                    var m = window.innerWidth,
                    k = window.innerHeight;
                    this.ih === m && this.hh === k || this.setSize(m, k)
                }
                this.zb || (e ? this.vk || (this.vk = !0) : this.vk ? (this.vk = !1, 0 === this.uc && this.setSize(Math.round(this.ur / this.devicePixelRatio), Math.round(this.tr / this.devicePixelRatio), !0)) : (this.ur = this.width, this.tr = this.height));
                this.gh && (e = this.Cp(), this.Zk = this.ba, e && (this.gh = !1, this.ba = 1, this.trigger(G.prototype.j.ep, null), window.C2_RegisterSW && window.C2_RegisterSW()));
                this.ky(g); ! this.ya && !this.nd || this.sn || this.yj || a || (this.ya = !1, this.J ? this.ld() : this.Be(), this.vj && (this.canvas && this.canvas.toDataURL && (this.qs = this.canvas.toDataURL(this.vj[0], this.vj[1]), window.cr_onSnapshot && window.cr_onSnapshot(this.qs), this.trigger(G.prototype.j.Xt, null)), this.vj = null));
                this.SA || (this.Cg++, this.ii++, this.xk++);
                this.Yi += Ya() - c
            }
        }
    };
    h.prototype.ky = function(a) {
        var b, g, e, c, m, k, l, d;
        1E3 <= a - this.ng && (this.ng += 1E3, 1E3 <= a - this.ng && (this.ng = a), this.Qm = this.xk, this.xk = 0, this.Cm = this.Yi, this.Yi = 0);
        b = 0;
        0 !== this.Sk && (b = a - this.Sk, 0 > b && (b = 0), this.Xf = b /= 1E3, .5 < this.Xf ? this.Xf = 0 : this.Xf > 1 / this.kr && (this.Xf = 1 / this.kr));
        this.Sk = a;
        this.pf = this.Xf * this.Lh;
        this.Vb.add(this.pf);
        this.Ze.add(b);
        a = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || !!document.msFullscreenElement || this.Nk) && !this.Vc;
        2 <= this.uc || a && 0 < this.Tg ? (b = this.Db / this.Cb, g = this.width / this.height, e = this.uc, a && 0 < this.Tg && (e = this.Tg), this.Yh = 2 !== e && g > b || 2 === e && g < b ? this.height / this.Cb: this.width / this.Db, this.ma && (this.ma.Yr(this.ma.scrollX), this.ma.Zr(this.ma.scrollY))) : this.Yh = this.jg ? this.devicePixelRatio: 1;
        this.ac();
        this.Kd++;
        this.ke.cz();
        this.Kd--;
        this.ac();
        this.Kd++;
        g = this.sr.Jf();
        a = 0;
        for (b = g.length; a < b; a++) g[a].bB();
        a = 0;
        for (b = this.F.length; a < b; a++) if (k = this.F[a], !k.T && (k.Sa.length || k.Na.length)) for (g = 0, e = k.d.length; g < e; g++) for (l = k.d[g], c = 0, m = l.Z.length; c < m; c++) l.Z[c].Mb();
        a = 0;
        for (b = this.F.length; a < b; a++) if (k = this.F[a], !k.T && (k.Sa.length || k.Na.length)) for (g = 0, e = k.d.length; g < e; g++) for (l = k.d[g], c = 0, m = l.Z.length; c < m; c++) d = l.Z[c],
        d.Iy && d.Iy();
        g = this.Ln.Jf();
        a = 0;
        for (b = g.length; a < b; a++) g[a].Mb();
        this.Kd--;
        this.Ix();
        for (a = 0; this.Uf && 10 > a++;) this.Sp(this.Uf);
        a = 0;
        for (b = this.Ce.length; a < b; a++) this.Ce[a].dn = !1;
        this.ma.ag && this.ma.ag.qb();
        A(this.yg);
        this.xn = !1;
        this.Kd++;
        a = 0;
        for (b = this.F.length; a < b; a++) if (k = this.F[a], !k.T && (k.Sa.length || k.Na.length)) for (g = 0, e = k.d.length; g < e; g++) for (l = k.d[g], c = 0, m = l.Z.length; c < m; c++) d = l.Z[c],
        d.Ql && d.Ql();
        g = this.Mn.Jf();
        a = 0;
        for (b = g.length; a < b; a++) g[a].Ql();
        this.Kd--
    };
    h.prototype.Sp = function(a) {
        var b = this.ma;
        this.ma.uz();
        var g, e, c;
        if (this.J) for (g = 0, e = this.F.length; g < e; g++) c = this.F[g],
        c.T || !c.Io || c.global && 0 !== c.d.length || -1 !== a.Bi.indexOf(c) || c.Io();
        b == a && A(this.ke.Dc);
        A(this.yg);
        this.Wr(!0);
        a.xo();
        this.Wr(!1);
        this.xn = this.ya = !0;
        this.ac()
    };
    h.prototype.Wr = function(a) {
        var b, g, e, c, m, k, l, d, f;
        b = 0;
        for (g = this.Sa.length; b < g; b++) e = this.Sa[b],
        a ? e.dj && e.dj() : e.ej && e.ej();
        b = 0;
        for (g = this.F.length; b < g; b++) if (e = this.F[b], e.global || e.Ca.Hl) for (c = 0, m = e.d.length; c < m; c++) if (k = e.d[c], a ? k.dj && k.dj() : k.ej && k.ej(), k.Z) for (l = 0, d = k.Z.length; l < d; l++) f = k.Z[l],
        a ? f.dj && f.dj() : f.ej && f.ej()
    };
    h.prototype.Rl = function(a) {
        this.Ln.add(a)
    };
    h.prototype.zz = function(a) {
        this.Mn.add(a)
    };
    h.prototype.qi = function(a) {
        return a && -1 !== a.bj ? this.Xf * a.bj: this.pf
    };
    h.prototype.Be = function() {
        this.ma.Be(this.Ta);
        this.jc && this.Ta.present()
    };
    h.prototype.ld = function() {
        this.Ka && (this.Yf = 1, this.ma.Pg(this.J));
        this.ma.ld(this.J);
        this.J.My()
    };
    h.prototype.mm = function(a) {
        a && this.ok.push(a)
    };
    h.prototype.Xy = function(a) {
        Fa(this.ok, a)
    };
    h.prototype.si = function(a) {
        a = a.toString();
        return this.Ne.hasOwnProperty(a) ? this.Ne[a] : null
    };
    var J = [];
    h.prototype.Kf = function(a) {
        var b, g;
        b = a.type.name;
        var e = null;
        if (this.Wf.hasOwnProperty(b)) {
            if (e = this.Wf[b], e.contains(a)) return
        } else e = J.length ? J.pop() : new ca,
        this.Wf[b] = e;
        e.add(a);
        this.tf = !0;
        if (a.nc) for (b = 0, g = a.siblings.length; b < g; b++) this.Kf(a.siblings[b]);
        this.mn && e.Oh.push(a);
        this.ln || (this.Kd++, this.trigger(Object.getPrototypeOf(a.type.Ca).j.Yo, a), this.Kd--)
    };
    h.prototype.ac = function() {
        if (this.tf) {
            var a, b, g, e, c, m;
            this.mn = !0;
            g = 0;
            for (c = this.Hd.length; g < c; ++g) for (a = this.Hd[g], b = a.type, b.d.push(a), e = 0, m = b.Na.length; e < m; ++e) b.Na[e].d.push(a),
            b.Na[e].Fh = !0;
            A(this.Hd);
            this.It();
            Xa(this.Wf);
            this.tf = this.mn = !1
        }
    };
    h.prototype.It = function() {
        for (var a in this.Wf) this.Wf.hasOwnProperty(a) && this.Xs(this.Wf[a])
    };
    h.prototype.Xs = function(a) {
        var b = a.Jf(),
        g = b[0].type,
        e,
        c,
        m,
        k,
        l,
        d;
        $a(g.d, a);
        g.Fh = !0;
        0 === g.d.length && (g.Rj = !1);
        e = 0;
        for (c = g.Na.length; e < c; ++e) d = g.Na[e],
        $a(d.d, a),
        d.Fh = !0;
        e = 0;
        for (c = this.ke.Dc.length; e < c; ++e) if (l = this.ke.Dc[e], l.pc.hasOwnProperty(g.index) && $a(l.pc[g.index].He, a), !g.T) for (m = 0, k = g.Na.length; m < k; ++m) d = g.Na[m],
        l.pc.hasOwnProperty(d.index) && $a(l.pc[d.index].He, a);
        if (l = b[0].q) {
            if (l.cd) for (m = l.d, e = 0, c = m.length; e < c; ++e) k = m[e],
            a.contains(k) && (k.Ga(), l.Yb.update(k, k.yc, null), k.yc.set(0, 0, -1, -1));
            $a(l.d, a);
            l.qj(0)
        }
        for (e = 0; e < b.length; ++e) this.Ws(b[e], g);
        a.clear();
        J.push(a);
        this.ya = !0
    };
    h.prototype.Ws = function(a, b) {
        var g, e, c;
        g = 0;
        for (e = this.ok.length; g < e; ++g) this.ok[g](a);
        a.mf && b.ck.update(a, a.mf, null); (g = a.q) && g.yh(a, !0);
        if (a.Z) for (g = 0, e = a.Z.length; g < e; ++g) c = a.Z[g],
        c.xg && c.xg(),
        c.behavior.Hn.remove(a);
        this.sr.remove(a);
        this.Ln.remove(a);
        this.Mn.remove(a);
        a.xg && a.xg();
        this.Ne.hasOwnProperty(a.uid.toString()) && delete this.Ne[a.uid.toString()];
        this.fl--;
        100 > b.lk.length && b.lk.push(a)
    };
    h.prototype.fk = function(a, b, g, e) {
        if (a.T) {
            var c = sa(Math.random() * a.vg.length);
            return this.fk(a.vg[c], b, g, e)
        }
        return a.jd ? this.nf(a.jd, b, !1, g, e, !1) : null
    };
    var S = [];
    h.prototype.nf = function(a, b, g, e, c, m) {
        var k, l, d, f;
        if (!a) return null;
        var h = this.F[a[1]],
        u = h.Ca.wf;
        if (this.gh && u && !h.pn || u && !this.J && 11 === a[0][11]) return null;
        var v = b;
        u || (b = null);
        var n;
        h.lk.length ? (n = h.lk.pop(), n.$c = !0, h.Ca.ja.call(n, h)) : (n = new h.Ca.ja(h), n.$c = !1); ! g || m || this.Ne.hasOwnProperty(a[2].toString()) ? n.uid = this.cj++:n.uid = a[2];
        this.Ne[n.uid.toString()] = n;
        n.Sr = this.or++;
        n.gg = h.d.length;
        k = 0;
        for (l = this.Hd.length; k < l; ++k) this.Hd[k].type === h && n.gg++;
        n.vi = Gb;
        n.toString = Hb;
        d = a[3];
        if (n.$c) Xa(n.xa);
        else {
            n.xa = {};
            if ("undefined" !== typeof cr_is_preview) for (n.wq = [], n.wq.length = d.length, k = 0, l = d.length; k < l; k++) n.wq[k] = d[k][1];
            n.yb = [];
            n.yb.length = d.length
        }
        k = 0;
        for (l = d.length; k < l; k++) n.yb[k] = d[k][0];
        if (u) {
            var w = a[0];
            n.x = ia(e) ? w[0] : e;
            n.y = ia(c) ? w[1] : c;
            n.z = w[2];
            n.width = w[3];
            n.height = w[4];
            n.depth = w[5];
            n.k = w[6];
            n.opacity = w[7];
            n.wc = w[8];
            n.xc = w[9];
            n.ec = w[10];
            k = w[11]; ! this.J && h.S.length && (n.ec = k);
            n.Zh = hb(n.ec);
            this.H && kb(n, n.ec, this.H);
            if (n.$c) {
                k = 0;
                for (l = w[12].length; k < l; k++) for (d = 0, f = w[12][k].length; d < f; d++) n.Ua[k][d] = w[12][k][d];
                n.Ra.set(0, 0, 0, 0);
                n.mf.set(0, 0, -1, -1);
                n.yc.set(0, 0, -1, -1);
                n.Oc.sj(n.Ra);
                A(n.tm)
            } else {
                n.Ua = w[12].slice(0);
                k = 0;
                for (l = n.Ua.length; k < l; k++) n.Ua[k] = w[12][k].slice(0);
                n.wa = [];
                n.df = [];
                n.df.length = h.S.length;
                n.Ra = new wa(0, 0, 0, 0);
                n.mf = new wa(0, 0, -1, -1);
                n.yc = new wa(0, 0, -1, -1);
                n.Oc = new xa;
                n.tm = [];
                n.Y = Kb;
                n.NA = Lb;
                n.fc = Mb;
                n.Ga = Nb;
                n.Iz = Ob;
                n.Js = Pb;
                n.$d = Qb
            }
            n.Kh = !1;
            n.Cz = 0;
            n.Bz = 0;
            n.Az = null;
            14 === w.length && (n.Kh = !0, n.Cz = w[13][0], n.Bz = w[13][1], n.Az = w[13][2]);
            k = 0;
            for (l = h.S.length; k < l; k++) n.df[k] = !0;
            n.Ue = !0;
            n.Rd = Rb;
            n.Rd();
            n.Ks = !!n.wa.length;
            n.rm = !0;
            n.wm = !0;
            h.Qj = !0;
            n.visible = !0;
            n.bj = -1;
            n.q = b;
            n.Td = b.d.length;
            n.Yf = 0;
            "undefined" === typeof n.Aa && (n.Aa = null);
            this.ya = n.ve = !0
        }
        var q;
        A(S);
        k = 0;
        for (l = h.Na.length; k < l; k++) S.push.apply(S, h.Na[k].Sa);
        S.push.apply(S, h.Sa);
        if (n.$c) for (k = 0, l = S.length; k < l; k++) {
            var M = S[k];
            q = n.Z[k];
            q.$c = !0;
            M.behavior.ja.call(q, M, n);
            w = a[4][k];
            d = 0;
            for (f = w.length; d < f; d++) q.C[d] = w[d];
            q.O();
            M.behavior.Hn.add(n)
        } else for (n.Z = [], k = 0, l = S.length; k < l; k++) M = S[k],
        q = new M.behavior.ja(M, n),
        q.$c = !1,
        q.C = a[4][k].slice(0),
        q.O(),
        n.Z.push(q),
        M.behavior.Hn.add(n);
        w = a[5];
        if (n.$c) for (k = 0, l = w.length; k < l; k++) n.C[k] = w[k];
        else n.C = w.slice(0);
        this.Hd.push(n);
        this.tf = !0;
        b && (b.Xh(n, !0), 1 !== b.rd || 1 !== b.sd) && (h.Rj = !0);
        this.fl++;
        if (h.nc) {
            if (n.nc = !0, n.$c ? A(n.siblings) : n.siblings = [], !g && !m) {
                k = 0;
                for (l = h.Gc.length; k < l; k++) if (h.Gc[k] !== h) {
                    if (!h.Gc[k].jd) return null;
                    n.siblings.push(this.nf(h.Gc[k].jd, v, !1, u ? n.x: e, u ? n.y: c, !0))
                }
                k = 0;
                for (l = n.siblings.length; k < l; k++) for (n.siblings[k].siblings.push(n), d = 0; d < l; d++) k !== d && n.siblings[k].siblings.push(n.siblings[d])
            }
        } else n.nc = !1,
        n.siblings = null;
        n.O();
        k = 0;
        for (l = n.Z.length; k < l; k++) n.Z[k].Hy && n.Z[k].Hy();
        return n
    };
    h.prototype.Bk = function(a) {
        var b, g;
        b = 0;
        for (g = this.ma.W.length; b < g; b++) {
            var e = this.ma.W[b];
            if (mb(e.name, a)) return e
        }
        return null
    };
    h.prototype.Ug = function(a) {
        a = sa(a);
        0 > a && (a = 0);
        a >= this.ma.W.length && (a = this.ma.W.length - 1);
        return this.ma.W[a]
    };
    h.prototype.ix = function(a) {
        return ja(a) ? this.Ug(a) : this.Bk(a.toString())
    };
    h.prototype.zm = function(a) {
        var b, g;
        b = 0;
        for (g = a.length; b < g; b++) a[b].U().ea = !0
    };
    h.prototype.jj = function(a) {
        var b, g;
        b = 0;
        for (g = a.length; b < g; b++) a[b].jj()
    };
    h.prototype.Cf = function(a) {
        var b, g;
        b = 0;
        for (g = a.length; b < g; b++) a[b].Cf()
    };
    h.prototype.Md = function(a) {
        var b, g;
        b = 0;
        for (g = a.length; b < g; b++) a[b].Md()
    };
    h.prototype.Hs = function(a) {
        if (a.Qj) {
            var b, g, e = a.d;
            b = 0;
            for (g = e.length; b < g; ++b) e[b].Js();
            e = this.Hd;
            b = 0;
            for (g = e.length; b < g; ++b) e[b].type === a && e[b].Js();
            a.Qj = !1
        }
    };
    h.prototype.Um = function(a, b, g, e) {
        var c, m, k = a ? 1 !== a.rd || 1 !== a.sd: !1;
        if (b.T) for (a = 0, c = b.vg.length; a < c; ++a) m = b.vg[a],
        k || m.Rj ? Da(e, m.d) : (this.Hs(m), m.ck.xl(g, e));
        else k || b.Rj ? Da(e, b.d) : (this.Hs(b), b.ck.xl(g, e))
    };
    h.prototype.tx = function(a, b, g, e) {
        var c, m;
        c = 0;
        for (m = b.length; c < m; ++c) this.Um(a, b[c], g, e)
    };
    h.prototype.rx = function(a, b, g) {
        var e = this.rs;
        e && this.tx(a, e.In, b, g)
    };
    h.prototype.Ml = function(a, b, g) {
        var e = a.U(),
        c,
        m,
        k,
        l,
        d = this.bb().jb.Yc,
        f,
        h,
        n;
        if (e.ea) for (e.ea = !1, A(e.d), c = 0, l = a.d.length; c < l; c++) k = a.d[c],
        k.Ga(),
        f = k.q.Rb(b, g, !0),
        h = k.q.Rb(b, g, !1),
        k.fc(f, h) ? e.d.push(k) : d && e.ca.push(k);
        else {
            m = 0;
            n = d ? e.ca: e.d;
            c = 0;
            for (l = n.length; c < l; c++) k = n[c],
            k.Ga(),
            f = k.q.Rb(b, g, !0),
            h = k.q.Rb(b, g, !1),
            k.fc(f, h) && (d ? e.d.push(k) : (e.d[m] = e.d[c], m++));
            n.length = m
        }
        a.dd();
        return e.cn()
    };
    h.prototype.Hf = function(a, b) {
        if (! (a && b && a !== b && a.ve && b.ve)) return ! 1;
        a.Ga();
        b.Ga();
        var g = a.q,
        e = b.q,
        c, m, k, l, d, f, h, n;
        if (g === e || g.rd === e.rd && e.sd === e.sd && g.scale === e.scale && g.k === e.k && g.Ud === e.Ud) {
            if (!a.Ra.Px(b.Ra) || !a.Oc.xq(b.Oc) || a.Kh && b.Kh) return ! 1;
            if (a.Kh) return this.vs(a, b);
            if (b.Kh) return this.vs(b, a);
            h = a.Aa && !a.Aa.$g();
            c = b.Aa && !b.Aa.$g();
            if (!h && !c) return ! 0;
            h ? (a.Aa.Jg(a.width, a.height, a.k), h = a.Aa) : (this.Pd.Dh(a.Oc, a.x, a.y, a.width, a.height), h = this.Pd);
            c ? (b.Aa.Jg(b.width, b.height, b.k), n = b.Aa) : (this.Pd.Dh(b.Oc, b.x, b.y, b.width, b.height), n = this.Pd);
            return h.Ci(n, b.x - a.x, b.y - a.y)
        }
        h = a.Aa && !a.Aa.$g();
        c = b.Aa && !b.Aa.$g();
        h ? (a.Aa.Jg(a.width, a.height, a.k), this.Pd.js(a.Aa)) : this.Pd.Dh(a.Oc, a.x, a.y, a.width, a.height);
        h = this.Pd;
        c ? (b.Aa.Jg(b.width, b.height, b.k), this.zo.js(b.Aa)) : this.zo.Dh(b.Oc, b.x, b.y, b.width, b.height);
        n = this.zo;
        c = 0;
        for (m = h.Nd; c < m; c++) k = 2 * c,
        l = k + 1,
        d = h.Eb[k],
        f = h.Eb[l],
        h.Eb[k] = g.oc(d + a.x, f + a.y, !0),
        h.Eb[l] = g.oc(d + a.x, f + a.y, !1);
        h.Ga();
        c = 0;
        for (m = n.Nd; c < m; c++) k = 2 * c,
        l = k + 1,
        d = n.Eb[k],
        f = n.Eb[l],
        n.Eb[k] = e.oc(d + b.x, f + b.y, !0),
        n.Eb[l] = e.oc(d + b.x, f + b.y, !1);
        n.Ga();
        return h.Ci(n, 0, 0)
    };
    var Q = new xa;
    new wa(0, 0, 0, 0);
    var B = [];
    h.prototype.vs = function(a, b) {
        var g, e, c, m, k = b.Ra,
        l = a.x,
        d = a.y;
        a.QA(k, B);
        var f = b.Aa && !b.Aa.$g();
        g = 0;
        for (e = B.length; g < e; ++g) if (c = B[g], m = c.eB, k.Qx(m, l, d) && (Q.sj(m), Q.offset(l, d), Q.xq(b.Oc))) if (f) if (b.Aa.Jg(b.width, b.height, b.k), c.$n) {
            if (c.$n.Ci(b.Aa, b.x - (l + m.left), b.y - (d + m.top))) return A(B),
            !0
        } else {
            if (this.Pd.Dh(Q, 0, 0, m.right - m.left, m.bottom - m.top), this.Pd.Ci(b.Aa, b.x, b.y)) return A(B),
            !0
        } else if (c.$n) {
            if (this.Pd.Dh(b.Oc, 0, 0, b.width, b.height), c.$n.Ci(this.Pd, -(l + m.left), -(d + m.top))) return A(B),
            !0
        } else return A(B),
        !0;
        A(B);
        return ! 1
    };
    h.prototype.Ds = function(a, b) {
        if (!b) return ! 1;
        var g, e, c, m, k;
        g = 0;
        for (e = a.Sa.length; g < e; g++) if (a.Sa[g].behavior instanceof b) return ! 0;
        if (!a.T) for (g = 0, e = a.Na.length; g < e; g++) for (k = a.Na[g], c = 0, m = k.Sa.length; c < m; c++) if (k.Sa[c].behavior instanceof b) return ! 0;
        return ! 1
    };
    h.prototype.Go = function(a) {
        return this.Ds(a, jc.fA)
    };
    h.prototype.Ho = function(a) {
        return this.Ds(a, jc.hA)
    };
    var V = [];
    h.prototype.Ag = function(a) {
        var b, g, e;
        a.Ga();
        this.rx(a.q, a.Ra, V);
        b = 0;
        for (g = V.length; b < g; ++b) if (e = V[b], e.xa.solidEnabled && this.Hf(a, e)) return A(V),
        e;
        A(V);
        return null
    };
    h.prototype.Qy = function(a, b, g, e) {
        e = e || 50;
        var c = a.x,
        m = a.y,
        k, l = null,
        d = null;
        for (k = 0; k < e; k++) if (a.x = c + b * k, a.y = m + g * k, a.Y(), !this.Hf(a, l) && ((l = this.Ag(a)) && (d = l), !l && !l)) return d && this.Oy(a, b, g, d),
        !0;
        a.x = c;
        a.y = m;
        a.Y();
        return ! 1
    };
    h.prototype.Oy = function(a, b, g, e) {
        var c = 2,
        m, k = !1;
        m = !1;
        for (var l = a.x,
        d = a.y; 16 >= c;) m = 1 / c,
        c *= 2,
        a.x += b * m * (k ? 1 : -1),
        a.y += g * m * (k ? 1 : -1),
        a.Y(),
        this.Hf(a, e) ? m = k = !0 : (m = k = !1, l = a.x, d = a.y);
        m && (a.x = l, a.y = d, a.Y())
    };
    h.prototype.Ry = function(a) {
        var b = 0,
        g = a.x,
        e = a.y,
        c = 0,
        m = 0,
        k = 0,
        l = this.Ag(a);
        if (l) {
            for (; 100 >= b;) {
                switch (c) {
                case 0:
                    m = 0;
                    k = -1;
                    b++;
                    break;
                case 1:
                    m = 1;
                    k = -1;
                    break;
                case 2:
                    m = 1;
                    k = 0;
                    break;
                case 3:
                    k = m = 1;
                    break;
                case 4:
                    m = 0;
                    k = 1;
                    break;
                case 5:
                    m = -1;
                    k = 1;
                    break;
                case 6:
                    m = -1;
                    k = 0;
                    break;
                case 7:
                    k = m = -1
                }
                c = (c + 1) % 8;
                a.x = sa(g + m * b);
                a.y = sa(e + k * b);
                a.Y();
                if (!this.Hf(a, l) && (l = this.Ag(a), !l)) return
            }
            a.x = g;
            a.y = e;
            a.Y()
        }
    };
    h.prototype.Uy = function(a, b) {
        a.ve && b.ve && this.yg.push([a, b])
    };
    h.prototype.vv = function(a, b, g) {
        var e, c, m;
        e = 0;
        for (c = this.yg.length; e < c; ++e) {
            m = this.yg[e];
            if (m[0] === a) m = m[1];
            else if (m[1] === a) m = m[0];
            else continue;
            if (b.T) {
                if ( - 1 === b.vg.indexOf(b)) continue
            } else if (m.type !== b) continue; - 1 === g.indexOf(m) && g.push(m)
        }
    };
    h.prototype.Hv = function(a, b) {
        var g, e, c;
        g = 0;
        for (e = this.yg.length; g < e; g++) if (c = this.yg[g], c[0] === a && c[1] === b || c[0] === b && c[1] === a) return ! 0;
        return ! 1
    };
    h.prototype.Fv = function(a, b, g) {
        var e = a.x,
        c = a.y,
        m = pa(10, Ta(b, g, e, c)),
        k = Oa(b, g, e, c),
        l = this.Ag(a);
        if (!l) return La(k + ra);
        var d = l,
        f, h, n, u, w = D(5);
        for (f = 1; 36 > f; f++) if (h = k - f * w, a.x = b + Math.cos(h) * m, a.y = g + Math.sin(h) * m, a.Y(), !this.Hf(a, d) && (d = this.Ag(a), !d)) {
            n = h;
            break
        }
        36 === f && (n = La(k + ra));
        d = l;
        for (f = 1; 36 > f; f++) if (h = k + f * w, a.x = b + Math.cos(h) * m, a.y = g + Math.sin(h) * m, a.Y(), !this.Hf(a, d) && (d = this.Ag(a), !d)) {
            u = h;
            break
        }
        36 === f && (u = La(k + ra));
        a.x = e;
        a.y = c;
        a.Y();
        if (u === n) return u;
        a = Pa(u, n) / 2;
        a = Ra(u, n) ? La(n + a + ra) : La(u + a);
        n = Math.cos(k);
        k = Math.sin(k);
        u = Math.cos(a);
        a = Math.sin(a);
        b = n * u + k * a;
        return Oa(0, 0, n - 2 * b * u, k - 2 * b * a)
    };
    var U = -1;
    h.prototype.trigger = function(a, b, g) {
        if (!this.ma) return ! 1;
        var e = this.ma.ag;
        if (!e) return ! 1;
        var c = !1,
        m, k, l;
        U++;
        var d = e.Gm;
        k = 0;
        for (l = d.length; k < l; ++k) m = this.As(a, b, d[k], g),
        c = c || m;
        m = this.As(a, b, e, g);
        U--;
        return c || m
    };
    h.prototype.As = function(a, b, g, e) {
        var c = !1,
        m, k, l, d;
        if (b) for (l = this.Eo(a, b, b.type.name, g, e), c = c || l, d = b.type.Na, m = 0, k = d.length; m < k; ++m) l = this.Eo(a, b, d[m].name, g, e),
        c = c || l;
        else l = this.Eo(a, b, "system", g, e),
        c = c || l;
        return c
    };
    h.prototype.Eo = function(a, b, g, e, c) {
        var m, k = !1,
        l = !1,
        l = "undefined" !== typeof c,
        d = (l ? e.Xp: e.Bs)[g];
        if (!d) return k;
        var f = null;
        e = 0;
        for (m = d.length; e < m; ++e) if (d[e].method == a) {
            f = d[e].hi;
            break
        }
        if (!f) return k;
        var h;
        l ? h = f[c] : h = f;
        if (!h) return null;
        e = 0;
        for (m = h.length; e < m; e++) a = h[e][0],
        c = h[e][1],
        l = this.Tw(b, g, a, c),
        k = k || l;
        return k
    };
    h.prototype.Tw = function(a, b, g, e) {
        var c, m, k = !1;
        this.Fo++;
        var l = this.bb().jb;
        l && this.jj(l.Gf);
        var d = 1 < this.Fo;
        this.jj(g.Gf);
        d && this.Py();
        var f = this.wl(g);
        f.jb = g;
        a && (c = this.types[b].U(), c.ea = !1, A(c.d), c.d[0] = a, this.types[b].dd());
        a = !0;
        if (g.parent) {
            b = f.us;
            for (c = g.parent; c;) b.push(c),
            c = c.parent;
            b.reverse();
            c = 0;
            for (m = b.length; c < m; c++) if (!b[c].ez()) {
                a = !1;
                break
            }
        }
        a && (this.ii++, g.Yc ? g.dz(e) : g.qb(), k = k || f.mg);
        this.rl();
        d && this.Gy();
        this.Md(g.Gf);
        l && this.Md(l.Gf);
        this.tf && 0 === this.Kd && 0 === U && !this.qn && this.ac();
        this.Fo--;
        return k
    };
    h.prototype.Ak = function() {
        var a = this.bb();
        return a.jb.ub[a.ib]
    };
    h.prototype.Tx = function() {
        return 0 === this.bb().ib
    };
    h.prototype.Py = function() {
        this.al++;
        this.al >= this.Cn.length && this.Cn.push([])
    };
    h.prototype.Gy = function() {
        this.al--
    };
    h.prototype.iq = function() {
        return this.Cn[this.al]
    };
    h.prototype.wl = function(a) {
        this.qk++;
        this.qk >= this.Lm.length && this.Lm.push(new Wb);
        var b = this.bb();
        b.reset(a);
        return b
    };
    h.prototype.rl = function() {
        this.qk--
    };
    h.prototype.bb = function() {
        return this.Lm[this.qk]
    };
    h.prototype.Tr = function(a) {
        this.$i++;
        this.$i >= this.Zi.length && this.Zi.push(aa({
            name: a,
            index: 0,
            Ya: !1
        }));
        var b = this.jq();
        b.name = a;
        b.index = 0;
        b.Ya = !1;
        return b
    };
    h.prototype.Or = function() {
        this.$i--
    };
    h.prototype.jq = function() {
        return this.Zi[this.$i]
    };
    h.prototype.kq = function(a, b) {
        for (var g, e, c, m, k, l; b;) {
            g = 0;
            for (e = b.ud.length; g < e; g++) if (l = b.ud[g], l instanceof Xb && mb(a, l.name)) return l;
            b = b.parent
        }
        g = 0;
        for (e = this.Ce.length; g < e; g++) for (k = this.Ce[g], c = 0, m = k.qf.length; c < m; c++) if (l = k.qf[c], l instanceof Xb && mb(a, l.name)) return l;
        return null
    };
    h.prototype.mq = function(a) {
        var b, g;
        b = 0;
        for (g = this.Ld.length; b < g; b++) if (this.Ld[b].ga === a) return this.Ld[b];
        return null
    };
    h.prototype.Dk = function(a) {
        var b, g;
        b = 0;
        for (g = this.F.length; b < g; b++) if (this.F[b].ga === a) return this.F[b];
        return null
    };
    h.prototype.cx = function(a) {
        var b, g;
        b = 0;
        for (g = this.ff.length; b < g; b++) if (this.ff[b].ga === a) return this.ff[b];
        return null
    };
    h.prototype.Ov = function(a, b) {
        this.vj = [a, b];
        this.ya = !0
    };
    h.prototype.Ix = function() {
        var a = this,
        b = this.qo,
        g = this.Ke,
        e = this.Vk,
        c = !1;
        this.os && (c = !0, b = "__c2_continuouspreview", this.os = !1);
        if (b.length) {
            this.ac();
            g = this.iz();
            if (d() && !this.nd) q(b, g,
            function() {
                ga("Saved state to IndexedDB storage (" + g.length + " bytes)");
                a.Ke = g;
                a.trigger(G.prototype.j.fm, null);
                a.Ke = "";
                c && r()
            },
            function(e) {
                try {
                    localStorage.setItem("__c2save_" + b, g),
                    ga("Saved state to WebStorage (" + g.length + " bytes)"),
                    a.Ke = g,
                    a.trigger(G.prototype.j.fm, null),
                    a.Ke = "",
                    c && r()
                } catch(m) {
                    ga("Failed to save game state: " + e + "; " + m),
                    a.trigger(G.prototype.j.ip, null)
                }
            });
            else try {
                localStorage.setItem("__c2save_" + b, g),
                ga("Saved state to WebStorage (" + g.length + " bytes)"),
                a.Ke = g,
                this.trigger(G.prototype.j.fm, null),
                a.Ke = "",
                c && r()
            } catch(m) {
                ga("Error saving to WebStorage: " + m),
                a.trigger(G.prototype.j.ip, null)
            }
            this.Vk = this.qo = "";
            this.Bb = null
        }
        if (e.length) {
            if (d() && !this.nd) p(e,
            function(b) {
                b ? (a.Bb = b, ga("Loaded state from IndexedDB storage (" + a.Bb.length + " bytes)")) : (a.Bb = localStorage.getItem("__c2save_" + e) || "", ga("Loaded state from WebStorage (" + a.Bb.length + " bytes)"));
                a.yj = !1;
                a.Bb || (a.Bb = null, a.trigger(G.prototype.j.Lj, null))
            },
            function() {
                a.Bb = localStorage.getItem("__c2save_" + e) || "";
                ga("Loaded state from WebStorage (" + a.Bb.length + " bytes)");
                a.yj = !1;
                a.Bb || (a.Bb = null, a.trigger(G.prototype.j.Lj, null))
            });
            else {
                try {
                    this.Bb = localStorage.getItem("__c2save_" + e) || "",
                    ga("Loaded state from WebStorage (" + this.Bb.length + " bytes)")
                } catch(k) {
                    this.Bb = null
                }
                this.yj = !1;
                a.Bb || (a.Bb = null, a.trigger(G.prototype.j.Lj, null))
            }
            this.qo = this.Vk = ""
        }
        null !== this.Bb && (this.ac(), this.iy(this.Bb) ? (this.Ke = this.Bb, this.trigger(G.prototype.j.hu, null), this.Ke = "") : a.trigger(G.prototype.j.Lj, null), this.Bb = null)
    };
    h.prototype.iz = function() {
        var b, g, e, c, m, k, l, d = {
            c2save: !0,
            version: 1,
            rt: {
                time: this.Vb.na,
                walltime: this.Ze.na,
                timescale: this.Lh,
                tickcount: this.Cg,
                execcount: this.ii,
                next_uid: this.cj,
                running_layout: this.ma.ga,
                start_time_offset: Date.now() - this.Il
            },
            types: {},
            layouts: {},
            events: {
                groups: {},
                cnds: {},
                acts: {},
                vars: {}
            }
        };
        b = 0;
        for (g = this.F.length; b < g; b++) if (m = this.F[b], !m.T && !this.Go(m)) {
            k = {
                instances: []
            };
            Wa(m.xa) && (k.ex = a(m.xa));
            e = 0;
            for (c = m.d.length; e < c; e++) k.instances.push(this.po(m.d[e]));
            d.types[m.ga.toString()] = k
        }
        b = 0;
        for (g = this.Ld.length; b < g; b++) e = this.Ld[b],
        d.layouts[e.ga.toString()] = e.Lb();
        c = d.events.groups;
        b = 0;
        for (g = this.ff.length; b < g; b++) e = this.ff[b],
        c[e.ga.toString()] = this.xi[e.wi].Wg;
        g = d.events.cnds;
        for (l in this.lf) this.lf.hasOwnProperty(l) && (b = this.lf[l], Wa(b.xa) && (g[l] = {
            ex: a(b.xa)
        }));
        g = d.events.acts;
        for (l in this.ef) this.ef.hasOwnProperty(l) && (b = this.ef[l], Wa(b.xa) && (g[l] = {
            ex: a(b.xa)
        }));
        g = d.events.vars;
        for (l in this.Ph) this.Ph.hasOwnProperty(l) && (b = this.Ph[l], b.Qk || b.parent && !b.Li || (g[l] = b.data));
        d.system = this.ke.Lb();
        return JSON.stringify(d)
    };
    h.prototype.Vr = function() {
        var a, b, g, e, c, m;
        this.Ne = {};
        a = 0;
        for (b = this.F.length; a < b; a++) if (g = this.F[a], !g.T) for (e = 0, c = g.d.length; e < c; e++) m = g.d[e],
        this.Ne[m.uid.toString()] = m
    };
    h.prototype.iy = function(a) {
        var b;
        try {
            b = JSON.parse(a)
        } catch(g) {
            return ! 1
        }
        if (!b.c2save || 1 < b.version) return ! 1;
        this.Fi = !0;
        a = b.rt;
        this.Vb.reset();
        this.Vb.na = a.time;
        this.Ze.reset();
        this.Ze.na = a.walltime || 0;
        this.Lh = a.timescale;
        this.Cg = a.tickcount;
        this.ii = a.execcount;
        this.Il = Date.now() - a.start_time_offset;
        var e = a.running_layout;
        if (e !== this.ma.ga) if (e = this.mq(e)) this.Sp(e);
        else return;
        var c, m, k, l, d, f, h;
        f = b.types;
        for (m in f) if (f.hasOwnProperty(m) && (l = this.Dk(parseInt(m, 10))) && !l.T && !this.Go(l)) {
            f[m].ex ? l.xa = f[m].ex: Xa(l.xa);
            d = l.d;
            k = f[m].instances;
            e = 0;
            for (c = qa(d.length, k.length); e < c; e++) this.Wk(d[e], k[e]);
            e = k.length;
            for (c = d.length; e < c; e++) this.Kf(d[e]);
            e = d.length;
            for (c = k.length; e < c; e++) {
                d = null;
                if (l.Ca.wf && (d = this.ma.Ck(k[e].w.l), !d)) continue;
                d = this.nf(l.jd, d, !1, 0, 0, !0);
                this.Wk(d, k[e])
            }
            l.Fh = !0
        }
        this.ac();
        this.Vr();
        c = b.layouts;
        for (m in c) c.hasOwnProperty(m) && (e = this.mq(parseInt(m, 10))) && e.kc(c[m]);
        c = b.events.groups;
        for (m in c) c.hasOwnProperty(m) && (e = this.cx(parseInt(m, 10))) && this.xi[e.wi] && this.xi[e.wi].ds(c[m]);
        e = b.events.cnds;
        for (m in this.lf) this.lf.hasOwnProperty(m) && (e.hasOwnProperty(m) ? this.lf[m].xa = e[m].ex: this.lf[m].xa = {});
        e = b.events.acts;
        for (m in this.ef) this.ef.hasOwnProperty(m) && (e.hasOwnProperty(m) ? this.ef[m].xa = e[m].ex: this.ef[m].xa = {});
        e = b.events.vars;
        for (m in e) e.hasOwnProperty(m) && this.Ph.hasOwnProperty(m) && (this.Ph[m].data = e[m]);
        this.cj = a.next_uid;
        this.Fi = !1;
        e = 0;
        for (c = this.uk.length; e < c; ++e) d = this.uk[e],
        this.trigger(Object.getPrototypeOf(d.type.Ca).j.Rh, d);
        A(this.uk);
        this.ke.kc(b.system);
        e = 0;
        for (c = this.F.length; e < c; e++) if (l = this.F[e], !l.T && !this.Go(l)) for (b = 0, m = l.d.length; b < m; b++) {
            d = l.d[b];
            if (l.nc) for (f = d.vi(), A(d.siblings), a = 0, k = l.Gc.length; a < k; a++) h = l.Gc[a],
            l !== h && d.siblings.push(h.d[f]);
            d.qe && d.qe();
            if (d.Z) for (a = 0, k = d.Z.length; a < k; a++) f = d.Z[a],
            f.qe && f.qe()
        }
        return this.ya = !0
    };
    h.prototype.po = function(b, g) {
        var e, c, m, k, l;
        k = b.type;
        m = k.Ca;
        var d = {};
        g ? d.c2 = !0 : d.uid = b.uid;
        Wa(b.xa) && (d.ex = a(b.xa));
        if (b.yb && b.yb.length) for (d.ivs = {},
        e = 0, c = b.yb.length; e < c; e++) d.ivs[b.type.jn[e].toString()] = b.yb[e];
        if (m.wf) {
            m = {
                x: b.x,
                y: b.y,
                w: b.width,
                h: b.height,
                l: b.q.ga,
                zi: b.$d()
            };
            0 !== b.k && (m.a = b.k);
            1 !== b.opacity && (m.o = b.opacity);.5 !== b.wc && (m.hX = b.wc);.5 !== b.xc && (m.hY = b.xc);
            0 !== b.ec && (m.bm = b.ec);
            b.visible || (m.v = b.visible);
            b.ve || (m.ce = b.ve); - 1 !== b.bj && (m.mts = b.bj);
            if (k.S.length) for (m.fx = [], e = 0, c = k.S.length; e < c; e++) l = k.S[e],
            m.fx.push({
                name: l.name,
                active: b.df[l.index],
                params: b.Ua[l.index]
            });
            d.w = m
        }
        if (b.Z && b.Z.length) for (d.behs = {},
        e = 0, c = b.Z.length; e < c; e++) k = b.Z[e],
        k.Lb && (d.behs[k.type.ga.toString()] = k.Lb());
        b.Lb && (d.data = b.Lb());
        return d
    };
    h.prototype.hx = function(a, b) {
        var g, e;
        g = 0;
        for (e = a.jn.length; g < e; g++) if (a.jn[g] === b) return g;
        return - 1
    };
    h.prototype.bx = function(a, b) {
        var g, e;
        g = 0;
        for (e = a.Z.length; g < e; g++) if (a.Z[g].type.ga === b) return g;
        return - 1
    };
    h.prototype.Wk = function(a, b, g) {
        var e, c, m, k, l;
        l = a.type;
        var d = l.Ca;
        if (g) {
            if (!b.c2) return
        } else a.uid = b.uid;
        b.ex ? a.xa = b.ex: Xa(a.xa);
        if (c = b.ivs) for (e in c) c.hasOwnProperty(e) && (m = this.hx(l, parseInt(e, 10)), 0 > m || m >= a.yb.length || (k = c[e], null === k && (k = NaN), a.yb[m] = k));
        if (d.wf) {
            m = b.w;
            a.q.ga !== m.l && (c = a.q, a.q = this.ma.Ck(m.l), a.q ? (c.yh(a, !0), a.q.Xh(a, !0), a.Y(), a.q.qj(0)) : (a.q = c, g || this.Kf(a)));
            a.x = m.x;
            a.y = m.y;
            a.width = m.w;
            a.height = m.h;
            a.Td = m.zi;
            a.k = m.hasOwnProperty("a") ? m.a: 0;
            a.opacity = m.hasOwnProperty("o") ? m.o: 1;
            a.wc = m.hasOwnProperty("hX") ? m.hX: .5;
            a.xc = m.hasOwnProperty("hY") ? m.hY: .5;
            a.visible = m.hasOwnProperty("v") ? m.v: !0;
            a.ve = m.hasOwnProperty("ce") ? m.ce: !0;
            a.bj = m.hasOwnProperty("mts") ? m.mts: -1;
            a.ec = m.hasOwnProperty("bm") ? m.bm: 0;
            a.Zh = hb(a.ec);
            this.H && kb(a, a.ec, this.H);
            a.Y();
            if (m.hasOwnProperty("fx")) for (g = 0, c = m.fx.length; g < c; g++) k = l.Wm(m.fx[g].name),
            0 > k || (a.df[k] = m.fx[g].active, a.Ua[k] = m.fx[g].params);
            a.Rd()
        }
        if (l = b.behs) for (e in l) l.hasOwnProperty(e) && (g = this.bx(a, parseInt(e, 10)), 0 > g || a.Z[g].kc(l[e]));
        b.data && a.kc(b.data)
    };
    h.prototype.Yp = function(a, b, g) {
        console.log("Yp Yp :" + a);
        window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/" + a,
        function(a) {
            a.file(b, g)
        },
        g)
    };
    h.prototype.Uw = function(a, b) {
        this.Yp("data.js",
        function(g) {
            var e = new FileReader;
            e.onload = function(b) {
                a(b.target.result)
            };
            e.onerror = b;
            e.readAsText(g)
        },
        b)
    };
    var N = [],
    L = 0;
    h.prototype.En = function() {
        if (N.length && !(8 <= L)) {
            L++;
            var a = N.shift();
            this.Qv(a.filename, a.yz, a.pw)
        }
    };
    h.prototype.Zp = function(a, b, g) {
        var e = this;
        N.push({
            filename: a,
            yz: function(a) {
                L--;
                e.En();
                b(a)
            },
            pw: function(a) {
                L--;
                e.En();
                g(a)
            }
        });
        this.En()
    };
    h.prototype.Qv = function(a, b, g) {
        this.Yp(a,
        function(a) {
            var g = new FileReader;
            g.onload = function(a) {
                b(a.target.result)
            };
            g.readAsArrayBuffer(a)
        },
        g)
    };
    h.prototype.Vw = function(a, b, g) {
        var e = "",
        c = a.toLowerCase(),
        m = c.substr(c.length - 4),
        c = c.substr(c.length - 5);
        ".mp4" === m ? e = "video/mp4": ".webm" === c ? e = "video/webm": ".m4a" === m ? e = "audio/mp4": ".mp3" === m && (e = "audio/mpeg");
        this.Zp(a,
        function(a) {
            a = URL.createObjectURL(new Blob([a], {
                type: e
            }));
            b(a)
        },
        g)
    };
    h.prototype.Rx = function(a) {
        return /^(?:[a-z]+:)?\/\//.test(a) || "data:" === a.substr(0, 5) || "blob:" === a.substr(0, 5)
    };
    h.prototype.es = function(a, b) {
        this.Ok && !this.Rx(b) ? this.Vw(b,
        function(b) {
            a.src = b
        },
        function(a) {
            alert("Failed to load image: " + a)
        }) : a.src = b
    };
    h.prototype.Dl = function(a, b) {
        "undefined" !== typeof a.imageSmoothingEnabled ? a.imageSmoothingEnabled = b: (a.webkitImageSmoothingEnabled = b, a.mozImageSmoothingEnabled = b, a.msImageSmoothingEnabled = b)
    };
    Yb = function(a) {
        return new h(document.getElementById(a))
    };
    Zb = function(a, b) {
        return new h({
            dc: !0,
            width: a,
            height: b
        })
    };
    window.cr_createRuntime = Yb;
    window.cr_createDCRuntime = Zb;
    window.createCocoonJSRuntime = function() {
        window.c2cocoonjs = !0;
        var a = document.createElement("screencanvas") || document.createElement("canvas");
        a.te = !0;
        document.body.appendChild(a);
        a = new h(a);
        window.c2runtime = a;
        window.addEventListener("orientationchange",
        function() {
            window.c2runtime.setSize(window.innerWidth, window.innerHeight)
        });
        window.c2runtime.setSize(window.innerWidth, window.innerHeight);
        return a
    };
    window.createEjectaRuntime = function() {
        var a = new h(document.getElementById("canvas"));
        window.c2runtime = a;
        window.c2runtime.setSize(window.innerWidth, window.innerHeight);
        return a
    }
})();
window.cr_getC2Runtime = function() {
    var h = document.getElementById("c2canvas");
    return h ? h.c2runtime: window.c2runtime ? window.c2runtime: null
};
window.cr_getSnapshot = function(h, f) {
    var d = window.cr_getC2Runtime();
    d && d.Ov(h, f)
};
window.cr_sizeCanvas = function(h, f) {
    if (0 !== h && 0 !== f) {
        var d = window.cr_getC2Runtime();
        d && d.setSize(h, f)
    }
};
window.cr_setSuspended = function(h) {
    var f = window.cr_getC2Runtime();
    f && f.setSuspended(h)
}; (function() {
    function h(a, b) {
        this.b = a;
        this.ag = null;
        this.scrollX = this.b.Db / 2;
        this.scrollY = this.b.Cb / 2;
        this.scale = 1;
        this.k = 0;
        this.Sg = !0;
        this.name = b[0];
        this.Dy = b[1];
        this.Cy = b[2];
        this.width = b[1];
        this.height = b[2];
        this.Es = b[3];
        this.ms = b[4];
        this.ga = b[5];
        var c = b[6],
        l,
        d;
        this.W = [];
        this.Bi = [];
        l = 0;
        for (d = c.length; l < d; l++) {
            var f = new $b(this, c[l]);
            f.qr = l;
            this.W.push(f)
        }
        c = b[7];
        this.uf = [];
        l = 0;
        for (d = c.length; l < d; l++) {
            var f = c[l],
            h = this.b.F[f[1]];
            h.jd || (h.jd = f);
            this.uf.push(f); - 1 === this.Bi.indexOf(h) && this.Bi.push(h)
        }
        this.S = [];
        this.wa = [];
        this.Ue = !0;
        this.Ua = [];
        l = 0;
        for (d = b[8].length; l < d; l++) this.S.push({
            id: b[8][l][0],
            name: b[8][l][1],
            rb: -1,
            Zc: !1,
            Qa: !0,
            index: l
        }),
        this.Ua.push(b[8][l][2].slice(0));
        this.Rd();
        this.ho = new wa(0, 0, 1, 1);
        this.io = new wa(0, 0, 1, 1);
        this.Bf = {}
    }
    function f(a, b) {
        return a.Td - b.Td
    }
    function d(a, b) {
        this.Hb = a;
        this.b = a.b;
        this.d = [];
        this.scale = 1;
        this.k = 0;
        this.Ae = !1;
        this.Xe = new wa(0, 0, 0, 0);
        this.zs = new xa;
        this.Ha = this.Fa = this.Ia = this.Ea = 0;
        this.Dg = !1;
        this.$e = -1;
        this.Am = 0;
        this.name = b[0];
        this.index = b[1];
        this.ga = b[2];
        this.visible = b[3];
        this.Fd = b[4];
        this.Qd = b[5];
        this.rd = b[6];
        this.sd = b[7];
        this.opacity = b[8];
        this.wk = b[9];
        this.cd = b[10];
        this.Ud = b[11];
        this.ec = b[12];
        this.kw = b[13];
        this.Zh = "source-over";
        this.gc = this.lc = 0;
        this.Yb = null;
        this.Le = n();
        this.Od = !0;
        this.jh = new wa(0, 0, -1, -1);
        this.Sb = new wa(0, 0, -1, -1);
        this.cd && (this.Yb = new gb(this.b.Db, this.b.Cb));
        this.ie = !1;
        var c = b[14],
        l,
        d;
        this.ss = [];
        this.Uc = [];
        this.bi = [];
        l = 0;
        for (d = c.length; l < d; l++) {
            var f = c[l],
            h = this.b.F[f[1]];
            h.jd || (h.jd = f, h.Nv = this.index);
            this.Uc.push(f); - 1 === this.Hb.Bi.indexOf(h) && this.Hb.Bi.push(h)
        }
        Ca(this.ss, this.Uc);
        this.S = [];
        this.wa = [];
        this.Ue = !0;
        this.Ua = [];
        l = 0;
        for (d = b[15].length; l < d; l++) this.S.push({
            id: b[15][l][0],
            name: b[15][l][1],
            rb: -1,
            Zc: !1,
            Qa: !0,
            index: l
        }),
        this.Ua.push(b[15][l][2].slice(0));
        this.Rd();
        this.ho = new wa(0, 0, 1, 1);
        this.io = new wa(0, 0, 1, 1)
    }
    function n() {
        return a.length ? a.pop() : []
    }
    function q(b) {
        A(b);
        a.push(b)
    }
    h.prototype.hz = function(a) {
        var b = a.type.ga.toString();
        this.Bf.hasOwnProperty(b) || (this.Bf[b] = []);
        this.Bf[b].push(this.b.po(a))
    };
    h.prototype.qq = function() {
        var a = this.W[0];
        return ! a.Qd && 1 === a.opacity && !a.wk && a.visible
    };
    h.prototype.Rd = function() {
        A(this.wa);
        this.Ue = !0;
        var a, b, c;
        a = 0;
        for (b = this.S.length; a < b; a++) c = this.S[a],
        c.Qa && (this.wa.push(c), c.Zc || (this.Ue = !1))
    };
    h.prototype.Vm = function(a) {
        var b, c, l;
        b = 0;
        for (c = this.S.length; b < c; b++) if (l = this.S[b], l.name === a) return l;
        return null
    };
    var p = [],
    r = !0;
    h.prototype.xo = function() {
        this.ms && (this.ag = this.b.Mm[this.ms], this.ag.Jo());
        this.b.ma = this;
        this.width = this.Dy;
        this.height = this.Cy;
        this.scrollX = this.b.Db / 2;
        this.scrollY = this.b.Cb / 2;
        var a, b, c, l, d, h, n;
        a = 0;
        for (c = this.b.F.length; a < c; a++) if (b = this.b.F[a], !b.T) for (d = b.d, b = 0, l = d.length; b < l; b++) if (h = d[b], h.q) {
            var m = h.q.qr;
            m >= this.W.length && (m = this.W.length - 1);
            h.q = this.W[m]; - 1 === h.q.d.indexOf(h) && h.q.d.push(h);
            h.q.Dg = !0
        }
        if (!r) for (a = 0, c = this.W.length; a < c; ++a) this.W[a].d.sort(f);
        A(p);
        this.Cv();
        a = 0;
        for (c = this.W.length; a < c; a++) h = this.W[a],
        h.Mv(),
        h.Yl();
        d = !1;
        if (!this.Sg) {
            for (n in this.Bf) if (this.Bf.hasOwnProperty(n) && (b = this.b.Dk(parseInt(n, 10))) && !b.T && this.b.Ho(b)) {
                l = this.Bf[n];
                a = 0;
                for (c = l.length; a < c; a++) {
                    h = null;
                    if (b.Ca.wf && (h = this.Ck(l[a].w.l), !h)) continue;
                    h = this.b.nf(b.jd, h, !1, 0, 0, !0);
                    this.b.Wk(h, l[a]);
                    d = !0;
                    p.push(h)
                }
                A(l)
            }
            a = 0;
            for (c = this.W.length; a < c; a++) this.W[a].d.sort(f),
            this.W[a].Dg = !0
        }
        d && (this.b.ac(), this.b.Vr());
        for (a = 0; a < p.length; a++) if (h = p[a], h.type.nc) for (c = h.vi(), b = 0, l = h.type.Gc.length; b < l; b++) n = h.type.Gc[b],
        h.type !== n && (n.d.length > c ? h.siblings.push(n.d[c]) : n.jd && (d = this.b.nf(n.jd, h.q, !0, h.x, h.y, !0), this.b.ac(), n.Wl(), h.siblings.push(d), p.push(d)));
        a = 0;
        for (c = this.uf.length; a < c; a++) h = this.uf[a],
        b = this.b.F[h[1]],
        b.nc || this.b.nf(this.uf[a], null, !0);
        this.b.Uf = null;
        this.b.ac();
        if (this.b.Ta && !this.b.zb) for (a = 0, c = this.b.F.length; a < c; a++) n = this.b.F[a],
        !n.T && n.d.length && n.bo && n.bo(this.b.Ta);
        if (this.b.Fi) Ca(this.b.uk, p);
        else for (a = 0, c = p.length; a < c; a++) h = p[a],
        this.b.trigger(Object.getPrototypeOf(h.type.Ca).j.Rh, h);
        A(p);
        this.b.Fi || this.b.trigger(G.prototype.j.dp, null);
        this.Sg = !1
    };
    h.prototype.Lv = function() {
        var a, b, c, l, d;
        b = a = 0;
        for (c = this.uf.length; a < c; a++) l = this.uf[a],
        d = this.b.F[l[1]],
        d.global ? d.nc || this.b.nf(l, null, !0) : (this.uf[b] = l, b++);
        Aa(this.uf, b)
    };
    h.prototype.uz = function() {
        this.b.Fi || this.b.trigger(G.prototype.j.gu, null);
        this.b.ln = !0;
        A(this.b.ke.Dc);
        var a, b, c, l, d, f;
        if (!this.Sg) for (a = 0, b = this.W.length; a < b; a++) for (this.W[a].Mo(), d = this.W[a].d, c = 0, l = d.length; c < l; c++) f = d[c],
        f.type.global || this.b.Ho(f.type) && this.hz(f);
        a = 0;
        for (b = this.W.length; a < b; a++) {
            d = this.W[a].d;
            c = 0;
            for (l = d.length; c < l; c++) f = d[c],
            f.type.global || this.b.Kf(f);
            this.b.ac();
            A(d);
            this.W[a].Dg = !0
        }
        a = 0;
        for (b = this.b.F.length; a < b; a++) if (d = this.b.F[a], !(d.global || d.Ca.wf || d.Ca.Hl || d.T)) {
            c = 0;
            for (l = d.d.length; c < l; c++) this.b.Kf(d.d[c]);
            this.b.ac()
        }
        r = !1;
        this.b.ln = !1
    };
    new wa(0, 0, 0, 0);
    h.prototype.Be = function(a) {
        var b, c = a,
        l = !1,
        d = !this.b.Sc;
        d && (this.b.Uk || (this.b.Uk = document.createElement("canvas"), b = this.b.Uk, b.width = this.b.M, b.height = this.b.L, this.b.Nq = b.getContext("2d"), l = !0), b = this.b.Uk, c = this.b.Nq, b.width !== this.b.M && (b.width = this.b.M, l = !0), b.height !== this.b.L && (b.height = this.b.L, l = !0), l && this.b.Dl(c, this.b.Va));
        c.globalAlpha = 1;
        c.globalCompositeOperation = "source-over";
        this.b.Mp && !this.qq() && c.clearRect(0, 0, this.b.M, this.b.L);
        var f, h, l = 0;
        for (f = this.W.length; l < f; l++) h = this.W[l],
        h.visible && 0 < h.opacity && 11 !== h.ec && (h.d.length || !h.Qd) ? h.Be(c) : h.Yl();
        d && a.drawImage(b, 0, 0, this.b.width, this.b.height)
    };
    h.prototype.Pg = function(a) {
        a.cs(!0);
        this.b.ob || (this.b.ob = a.gd(this.b.M, this.b.L, this.b.Va));
        if (this.b.ob.Tf !== this.b.M || this.b.ob.Sf !== this.b.L) a.deleteTexture(this.b.ob),
        this.b.ob = a.gd(this.b.M, this.b.L, this.b.Va);
        a.td(this.b.ob);
        this.b.Sc || a.Se(this.b.M, this.b.L);
        var b, c;
        for (b = this.W.length - 1; 0 <= b; --b) c = this.W[b],
        c.visible && 1 === c.opacity && c.Ue && 0 === c.ec && (c.d.length || !c.Qd) ? c.Pg(a) : c.Yl();
        a.cs(!1)
    };
    h.prototype.ld = function(a) {
        var b = 0 < this.wa.length || this.b.Nh || !this.b.Sc || this.b.Ka;
        if (b) {
            this.b.ob || (this.b.ob = a.gd(this.b.M, this.b.L, this.b.Va));
            if (this.b.ob.Tf !== this.b.M || this.b.ob.Sf !== this.b.L) a.deleteTexture(this.b.ob),
            this.b.ob = a.gd(this.b.M, this.b.L, this.b.Va);
            a.td(this.b.ob);
            this.b.Sc || a.Se(this.b.M, this.b.L)
        } else this.b.ob && (a.td(null), a.deleteTexture(this.b.ob), this.b.ob = null);
        this.b.Mp && !this.qq() && a.clear(0, 0, 0, 0);
        var c, l, d;
        c = 0;
        for (l = this.W.length; c < l; c++) d = this.W[c],
        d.visible && 0 < d.opacity && (d.d.length || !d.Qd) ? d.ld(a) : d.Yl();
        b && (0 === this.wa.length || 1 === this.wa.length && this.b.Sc ? (1 === this.wa.length ? (b = this.wa[0].index, a.Cc(this.wa[0].rb), a.Ch(null, 1 / this.b.M, 1 / this.b.L, 0, 0, 1, 1, this.scale, this.k, 0, 0, this.b.M / 2, this.b.L / 2, this.b.Vb.na, this.Ua[b]), a.ul(this.wa[0].rb) && (this.b.ya = !0)) : a.Cc(0), this.b.Sc || a.Se(this.b.width, this.b.height), a.td(null), a.bs(!1), a.Bh(1), a.bd(this.b.ob), a.$r(), a.je(), a.Sd(), b = this.b.width / 2, c = this.b.height / 2, a.kj( - b, c, b, c, b, -c, -b, -c), a.bd(null), a.bs(!0)) : this.jo(a, null, null, null))
    };
    h.prototype.ti = function() {
        return 0 < this.wa.length || this.b.Nh || !this.b.Sc || this.b.Ka ? this.b.ob: null
    };
    h.prototype.nq = function() {
        var a = this.W[0].md(),
        b,
        c,
        l;
        b = 1;
        for (c = this.W.length; b < c; b++) l = this.W[b],
        (0 !== l.rd || 0 !== l.sd) && l.md() < a && (a = l.md());
        return a
    };
    h.prototype.Yr = function(a) {
        if (!this.Es) {
            var b = 1 / this.nq() * this.b.M / 2;
            a > this.width - b && (a = this.width - b);
            a < b && (a = b)
        }
        this.scrollX !== a && (this.scrollX = a, this.b.ya = !0)
    };
    h.prototype.Zr = function(a) {
        if (!this.Es) {
            var b = 1 / this.nq() * this.b.L / 2;
            a > this.height - b && (a = this.height - b);
            a < b && (a = b)
        }
        this.scrollY !== a && (this.scrollY = a, this.b.ya = !0)
    };
    h.prototype.Cv = function() {
        this.Yr(this.scrollX);
        this.Zr(this.scrollY)
    };
    h.prototype.jo = function(a, b, c, l) {
        var d = c ? c.wa: b ? b.wa: this.wa,
        f = 1,
        h = 0,
        m = 0,
        n = 0,
        q = this.b.M,
        r = this.b.L;
        c ? (f = c.q.md(), h = c.q.Ub(), m = c.q.Ea, n = c.q.Fa, q = c.q.Ia, r = c.q.Ha) : b && (f = b.md(), h = b.Ub(), m = b.Ea, n = b.Fa, q = b.Ia, r = b.Ha);
        var v = this.b.Rm,
        p, C, t, F, J = 0,
        S = 1,
        Q, B, V = this.b.M,
        U = this.b.L,
        N = V / 2,
        L = U / 2,
        z = b ? b.ho: this.ho,
        x = b ? b.io: this.io,
        O = 0,
        y = 0,
        K = 0,
        E = 0,
        X = V,
        ua = V,
        Y = U,
        ka = U,
        da = t = 0;
        F = c ? c.q.Ub() : 0;
        if (c) {
            p = 0;
            for (C = d.length; p < C; p++) t += a.nx(d[p].rb),
            da += a.ox(d[p].rb);
            E = c.Ra;
            O = b.oc(E.left, E.top, !0, !0);
            K = b.oc(E.left, E.top, !1, !0);
            X = b.oc(E.right, E.bottom, !0, !0);
            Y = b.oc(E.right, E.bottom, !1, !0);
            0 !== F && (p = b.oc(E.right, E.top, !0, !0), C = b.oc(E.right, E.top, !1, !0), y = b.oc(E.left, E.bottom, !0, !0), E = b.oc(E.left, E.bottom, !1, !0), F = Math.min(O, X, p, y), X = Math.max(O, X, p, y), O = F, F = Math.min(K, Y, C, E), Y = Math.max(K, Y, C, E), K = F);
            O -= t;
            K -= da;
            X += t;
            Y += da;
            x.left = O / V;
            x.top = 1 - K / U;
            x.right = X / V;
            x.bottom = 1 - Y / U;
            y = O = sa(O);
            E = K = sa(K);
            ua = X = ta(X);
            ka = Y = ta(Y);
            y -= t;
            E -= da;
            ua += t;
            ka += da;
            0 > O && (O = 0);
            0 > K && (K = 0);
            X > V && (X = V);
            Y > U && (Y = U);
            0 > y && (y = 0);
            0 > E && (E = 0);
            ua > V && (ua = V);
            ka > U && (ka = U);
            z.left = O / V;
            z.top = 1 - K / U;
            z.right = X / V;
            z.bottom = 1 - Y / U
        } else z.left = x.left = 0,
        z.top = x.top = 0,
        z.right = x.right = 1,
        z.bottom = x.bottom = 1;
        da = c && (a.ij(d[0].rb) || 0 !== t || 0 !== da || 1 !== c.opacity || c.type.Ca.lr) || b && !c && 1 !== b.opacity;
        a.$r();
        if (da) {
            v[J] || (v[J] = a.gd(V, U, this.b.Va));
            if (v[J].Tf !== V || v[J].Sf !== U) a.deleteTexture(v[J]),
            v[J] = a.gd(V, U, this.b.Va);
            a.Cc(0);
            a.td(v[J]);
            B = ka - E;
            a.clearRect(y, U - E - B, ua - y, B);
            c ? c.ld(a) : (a.bd(this.b.Ab), a.Bh(b.opacity), a.je(), a.translate( - N, -L), a.Sd(), a.Df(O, Y, X, Y, X, K, O, K, z));
            x.left = x.top = 0;
            x.right = x.bottom = 1;
            c && (F = z.top, z.top = z.bottom, z.bottom = F);
            J = 1;
            S = 0
        }
        a.Bh(1);
        t = d.length - 1;
        var Ia = a.eo(d[t].rb) || !b && !c && !this.b.Sc;
        p = F = 0;
        for (C = d.length; p < C; p++) {
            v[J] || (v[J] = a.gd(V, U, this.b.Va));
            if (v[J].Tf !== V || v[J].Sf !== U) a.deleteTexture(v[J]),
            v[J] = a.gd(V, U, this.b.Va);
            a.Cc(d[p].rb);
            F = d[p].index;
            a.ul(d[p].rb) && (this.b.ya = !0);
            0 != p || da ? (a.Ch(l, 1 / V, 1 / U, x.left, x.top, x.right, x.bottom, f, h, m, n, (m + q) / 2, (n + r) / 2, this.b.Vb.na, c ? c.Ua[F] : b ? b.Ua[F] : this.Ua[F]), a.bd(null), p !== t || Ia ? (a.td(v[J]), B = ka - E, Q = U - E - B, a.clearRect(y, Q, ua - y, B)) : (c ? a.Ff(c.lc, c.gc) : b && a.Ff(b.lc, b.gc), a.td(l)), a.bd(v[S]), a.je(), a.translate( - N, -L), a.Sd(), a.Df(O, Y, X, Y, X, K, O, K, z), p !== t || Ia || a.bd(null)) : (a.td(v[J]), B = ka - E, Q = U - E - B, a.clearRect(y, Q, ua - y, B), c ? (c.Ma && c.Ma.Da ? (Q = c.Ma.Da, S = 1 / Q.width, Q = 1 / Q.height) : (S = 1 / c.width, Q = 1 / c.height), a.Ch(l, S, Q, x.left, x.top, x.right, x.bottom, f, h, m, n, (m + q) / 2, (n + r) / 2, this.b.Vb.na, c.Ua[F]), c.ld(a)) : (a.Ch(l, 1 / V, 1 / U, 0, 0, 1, 1, f, h, m, n, (m + q) / 2, (n + r) / 2, this.b.Vb.na, b ? b.Ua[F] : this.Ua[F]), a.bd(b ? this.b.Ab: this.b.ob), a.je(), a.translate( - N, -L), a.Sd(), a.Df(O, Y, X, Y, X, K, O, K, z)), x.left = x.top = 0, x.right = x.bottom = 1, c && !Ia && (F = Y, Y = K, K = F));
            J = 0 === J ? 1 : 0;
            S = 0 === J ? 1 : 0
        }
        Ia && (a.Cc(0), c ? a.Ff(c.lc, c.gc) : b ? a.Ff(b.lc, b.gc) : this.b.Sc || (a.Se(this.b.width, this.b.height), N = this.b.width / 2, L = this.b.height / 2, K = O = 0, X = this.b.width, Y = this.b.height), a.td(l), a.bd(v[S]), a.je(), a.translate( - N, -L), a.Sd(), c && 1 === d.length && !da ? a.Df(O, K, X, K, X, Y, O, Y, z) : a.Df(O, Y, X, Y, X, K, O, K, z), a.bd(null))
    };
    h.prototype.Ck = function(a) {
        var b, c;
        b = 0;
        for (c = this.W.length; b < c; b++) if (this.W[b].ga === a) return this.W[b];
        return null
    };
    h.prototype.Lb = function() {
        var a, b, c, l = {
            sx: this.scrollX,
            sy: this.scrollY,
            s: this.scale,
            a: this.k,
            w: this.width,
            h: this.height,
            fv: this.Sg,
            persist: this.Bf,
            fx: [],
            layers: {}
        };
        a = 0;
        for (b = this.S.length; a < b; a++) c = this.S[a],
        l.fx.push({
            name: c.name,
            active: c.Qa,
            params: this.Ua[c.index]
        });
        a = 0;
        for (b = this.W.length; a < b; a++) c = this.W[a],
        l.layers[c.ga.toString()] = c.Lb();
        return l
    };
    h.prototype.kc = function(a) {
        var b, c, l, d;
        this.scrollX = a.sx;
        this.scrollY = a.sy;
        this.scale = a.s;
        this.k = a.a;
        this.width = a.w;
        this.height = a.h;
        this.Bf = a.persist;
        "undefined" !== typeof a.fv && (this.Sg = a.fv);
        var f = a.fx;
        b = 0;
        for (c = f.length; b < c; b++) if (l = this.Vm(f[b].name)) l.Qa = f[b].active,
        this.Ua[l.index] = f[b].params;
        this.Rd();
        b = a.layers;
        for (d in b) b.hasOwnProperty(d) && (a = this.Ck(parseInt(d, 10))) && a.kc(b[d])
    };
    Ib = h;
    d.prototype.Rd = function() {
        A(this.wa);
        this.Ue = !0;
        var a, b, c;
        a = 0;
        for (b = this.S.length; a < b; a++) c = this.S[a],
        c.Qa && (this.wa.push(c), c.Zc || (this.Ue = !1))
    };
    d.prototype.Vm = function(a) {
        var b, c, l;
        b = 0;
        for (c = this.S.length; b < c; b++) if (l = this.S[b], l.name === a) return l;
        return null
    };
    d.prototype.Mv = function() {
        var a, b, c, l, d, f;
        b = a = 0;
        for (c = this.Uc.length; a < c; a++) {
            l = this.Uc[a];
            d = this.b.F[l[1]];
            f = this.b.Ho(d);
            d = !0;
            if (!f || this.Hb.Sg) {
                l = this.b.nf(l, this, !0);
                if (!l) continue;
                p.push(l);
                l.type.global && (d = !1, this.bi.push(l.uid))
            }
            d && (this.Uc[b] = this.Uc[a], b++)
        }
        this.Uc.length = b;
        this.b.ac(); ! this.b.J && this.S.length && (this.ec = this.kw);
        this.Zh = hb(this.ec);
        this.b.H && kb(this, this.ec, this.b.H);
        this.Od = !0
    };
    d.prototype.yh = function(a, b) {
        var c = Ea(this.d, a);
        0 > c || (b && this.cd && a.yc && a.yc.right >= a.yc.left && (a.Ga(), this.Yb.update(a, a.yc, null), a.yc.set(0, 0, -1, -1)), c === this.d.length - 1 ? this.d.pop() : (za(this.d, c), this.qj(c)), this.Od = !0)
    };
    d.prototype.Xh = function(a, b) {
        a.Td = this.d.length;
        this.d.push(a);
        b && this.cd && a.yc && a.Y();
        this.Od = !0
    };
    d.prototype.Ly = function(a) {
        this.d.unshift(a);
        this.qj(0)
    };
    d.prototype.ry = function(a, b, c) {
        var l = a.$d();
        b = b.$d();
        za(this.d, l);
        l < b && b--;
        c && b++;
        b === this.d.length ? this.d.push(a) : this.d.splice(b, 0, a);
        this.qj(l < b ? l: b)
    };
    d.prototype.qj = function(a) { - 1 === this.$e ? this.$e = a: a < this.$e && (this.$e = a);
        this.Od = this.Dg = !0
    };
    d.prototype.Mo = function() {
        if (this.Dg) { - 1 === this.$e && (this.$e = 0);
            var a, b, c;
            if (this.cd) for (a = this.$e, b = this.d.length; a < b; ++a) c = this.d[a],
            c.Td = a,
            this.Yb.ny(c.yc);
            else for (a = this.$e, b = this.d.length; a < b; ++a) this.d[a].Td = a;
            this.Dg = !1;
            this.$e = -1
        }
    };
    d.prototype.md = function(a) {
        return this.jx() * (this.b.Sc || a ? this.b.Yh: 1)
    };
    d.prototype.jx = function() {
        return (this.scale * this.Hb.scale - 1) * this.Ud + 1
    };
    d.prototype.Ub = function() {
        return this.Ae ? 0 : La(this.Hb.k + this.k)
    };
    var a = [],
    b = [],
    c = [];
    d.prototype.Zm = function() {
        this.Mo();
        this.Yb.xl(this.Ea, this.Fa, this.Ia, this.Ha, c);
        if (!c.length) return n();
        if (1 === c.length) {
            var a = n();
            Ca(a, c[0]);
            A(c);
            return a
        }
        for (var e = !0; 1 < c.length;) {
            for (var a = c,
            d = void 0,
            l = void 0,
            f = void 0,
            h = void 0,
            r = void 0,
            d = 0,
            l = a.length; d < l - 1; d += 2) {
                var f = a[d],
                h = a[d + 1],
                r = n(),
                m = f,
                u = h,
                p = r,
                T = 0,
                v = 0,
                H = 0,
                C = m.length,
                t = u.length,
                F = void 0,
                J = void 0;
                for (p.length = C + t; T < C && v < t; ++H) F = m[T],
                J = u[v],
                F.Td < J.Td ? (p[H] = F, ++T) : (p[H] = J, ++v);
                for (; T < C; ++T, ++H) p[H] = m[T];
                for (; v < t; ++v, ++H) p[H] = u[v];
                e || (q(f), q(h));
                b.push(r)
            }
            1 === l % 2 && (e ? (f = n(), Ca(f, a[l - 1]), b.push(f)) : b.push(a[l - 1]));
            Ca(a, b);
            A(b);
            e = !1
        }
        a = c[0];
        A(c);
        return a
    };
    d.prototype.Be = function(a) {
        window.console.log("source-over source-over..........");
        this.ie = this.wk || 1 !== this.opacity || 0 !== this.ec;
        var b = this.b.canvas,
        c = a,
        l = !1;
        this.ie && (this.b.Tk || (this.b.Tk = document.createElement("canvas"), b = this.b.Tk, b.width = this.b.M, b.height = this.b.L, this.b.Mq = b.getContext("2d"), l = !0), b = this.b.Tk, c = this.b.Mq, b.width !== this.b.M && (b.width = this.b.M, l = !0), b.height !== this.b.L && (b.height = this.b.L, l = !0), l && this.b.Dl(c, this.b.Va), this.Qd && c.clearRect(0, 0, this.b.M, this.b.L));
        c.globalAlpha = 1;
        c.globalCompositeOperation = "source-over";
        this.Qd || (c.fillStyle = "rgb(" + this.Fd[0] + "," + this.Fd[1] + "," + this.Fd[2] + ")", c.fillRect(0, 0, this.b.M, this.b.L));
        c.save();
        this.Ae = !0;
        var l = this.Rb(0, 0, !0, !0),
        d = this.Rb(0, 0, !1, !0);
        this.Ae = !1;
        this.b.Qe && (l = Math.round(l), d = Math.round(d));
        this.zl(l, d, c);
        var f = this.md();
        c.scale(f, f);
        c.translate( - l, -d);
        this.cd ? (this.Sb.left = this.Yb.rc(this.Ea), this.Sb.top = this.Yb.sc(this.Fa), this.Sb.right = this.Yb.rc(this.Ia), this.Sb.bottom = this.Yb.sc(this.Ha), this.Od || !this.Sb.gi(this.jh) ? (q(this.Le), l = this.Zm(), this.Od = !1, this.jh.Mg(this.Sb)) : l = this.Le) : l = this.d;
        for (var h, m = null,
        d = 0,
        f = l.length; d < f; ++d) h = l[d],
        h !== m && (this.fw(h, c), m = h);
        this.cd && (this.Le = l);
        c.restore();
        this.ie && (a.globalCompositeOperation = this.Zh, a.globalAlpha = this.opacity, a.drawImage(b, 0, 0))
    };
    d.prototype.fw = function(a, b) {
        if (a.visible && 0 !== a.width && 0 !== a.height) {
            a.Ga();
            var c = a.Ra;
            c.right < this.Ea || c.bottom < this.Fa || c.left > this.Ia || c.top > this.Ha || (b.globalCompositeOperation = a.Zh, a.Be(b))
        }
    };
    d.prototype.Yl = function() {
        this.Ae = !0;
        var a = this.Rb(0, 0, !0, !0),
        b = this.Rb(0, 0, !1, !0);
        this.Ae = !1;
        this.b.Qe && (a = Math.round(a), b = Math.round(b));
        this.zl(a, b, null)
    };
    d.prototype.zl = function(a, b, c) {
        var l = this.md();
        this.Ea = a;
        this.Fa = b;
        this.Ia = a + 1 / l * this.b.M;
        this.Ha = b + 1 / l * this.b.L;
        this.Ea > this.Ia && (a = this.Ea, this.Ea = this.Ia, this.Ia = a);
        this.Fa > this.Ha && (a = this.Fa, this.Fa = this.Ha, this.Ha = a);
        a = this.Ub();
        0 !== a && (c && (c.translate(this.b.M / 2, this.b.L / 2), c.rotate( - a), c.translate(this.b.M / -2, this.b.L / -2)), this.Xe.set(this.Ea, this.Fa, this.Ia, this.Ha), this.Xe.offset((this.Ea + this.Ia) / -2, (this.Fa + this.Ha) / -2), this.zs.ks(this.Xe, a), this.zs.Fp(this.Xe), this.Xe.offset((this.Ea + this.Ia) / 2, (this.Fa + this.Ha) / 2), this.Ea = this.Xe.left, this.Fa = this.Xe.top, this.Ia = this.Xe.right, this.Ha = this.Xe.bottom)
    };
    d.prototype.Pg = function(a) {
        if (this.ie = this.wk) {
            this.b.Ab || (this.b.Ab = a.gd(this.b.M, this.b.L, this.b.Va));
            if (this.b.Ab.Tf !== this.b.M || this.b.Ab.Sf !== this.b.L) a.deleteTexture(this.b.Ab),
            this.b.Ab = a.gd(this.b.M, this.b.L, this.b.Va);
            a.td(this.b.Ab)
        }
        this.Ae = !0;
        var b = this.Rb(0, 0, !0, !0),
        c = this.Rb(0, 0, !1, !0);
        this.Ae = !1;
        this.b.Qe && (b = Math.round(b), c = Math.round(c));
        this.zl(b, c, null);
        b = this.md();
        a.je();
        a.scale(b, b);
        a.mo( - this.Ub());
        a.translate((this.Ea + this.Ia) / -2, (this.Fa + this.Ha) / -2);
        a.Sd();
        this.cd ? (this.Sb.left = this.Yb.rc(this.Ea), this.Sb.top = this.Yb.sc(this.Fa), this.Sb.right = this.Yb.rc(this.Ia), this.Sb.bottom = this.Yb.sc(this.Ha), this.Od || !this.Sb.gi(this.jh) ? (q(this.Le), b = this.Zm(), this.Od = !1, this.jh.Mg(this.Sb)) : b = this.Le) : b = this.d;
        for (var l, d = null,
        c = b.length - 1; 0 <= c; --c) l = b[c],
        l !== d && (this.hw(b[c], a), d = l);
        this.cd && (this.Le = b);
        this.Qd || (this.Am = this.b.Yf++, a.El(this.Am), a.as(1, 1, 1), a.fq(), a.Zy())
    };
    d.prototype.ld = function(a) {
        var b = 0,
        c = 0;
        if (this.ie = this.wk || 1 !== this.opacity || 0 < this.wa.length || 0 !== this.ec) {
            this.b.Ab || (this.b.Ab = a.gd(this.b.M, this.b.L, this.b.Va));
            if (this.b.Ab.Tf !== this.b.M || this.b.Ab.Sf !== this.b.L) a.deleteTexture(this.b.Ab),
            this.b.Ab = a.gd(this.b.M, this.b.L, this.b.Va);
            a.td(this.b.Ab);
            this.Qd && a.clear(0, 0, 0, 0)
        }
        this.Qd || (this.b.Ka ? (a.El(this.Am), a.as(this.Fd[0] / 255, this.Fd[1] / 255, this.Fd[2] / 255), a.fq(), a.oz()) : a.clear(this.Fd[0] / 255, this.Fd[1] / 255, this.Fd[2] / 255, 1));
        this.Ae = !0;
        var l = this.Rb(0, 0, !0, !0),
        b = this.Rb(0, 0, !1, !0);
        this.Ae = !1;
        this.b.Qe && (l = Math.round(l), b = Math.round(b));
        this.zl(l, b, null);
        l = this.md();
        a.je();
        a.scale(l, l);
        a.mo( - this.Ub());
        a.translate((this.Ea + this.Ia) / -2, (this.Fa + this.Ha) / -2);
        a.Sd();
        this.cd ? (this.Sb.left = this.Yb.rc(this.Ea), this.Sb.top = this.Yb.sc(this.Fa), this.Sb.right = this.Yb.rc(this.Ia), this.Sb.bottom = this.Yb.sc(this.Ha), this.Od || !this.Sb.gi(this.jh) ? (q(this.Le), b = this.Zm(), this.Od = !1, this.jh.Mg(this.Sb)) : b = this.Le) : b = this.d;
        var d, f, h = null,
        c = 0;
        for (d = b.length; c < d; ++c) f = b[c],
        f !== h && (this.gw(b[c], a), h = f);
        this.cd && (this.Le = b);
        this.ie && (b = this.wa.length ? this.wa[0].rb: 0, c = this.wa.length ? this.wa[0].index: 0, 0 === this.wa.length || 1 === this.wa.length && !a.eo(b) && 1 === this.opacity ? (1 === this.wa.length ? (a.Cc(b), a.Ch(this.Hb.ti(), 1 / this.b.M, 1 / this.b.L, 0, 0, 1, 1, l, this.Ub(), this.Ea, this.Fa, (this.Ea + this.Ia) / 2, (this.Fa + this.Ha) / 2, this.b.Vb.na, this.Ua[c]), a.ul(b) && (this.b.ya = !0)) : a.Cc(0), a.td(this.Hb.ti()), a.Bh(this.opacity), a.bd(this.b.Ab), a.Ff(this.lc, this.gc), a.je(), a.Sd(), l = this.b.M / 2, b = this.b.L / 2, a.kj( - l, b, l, b, l, -b, -l, -b), a.bd(null)) : this.Hb.jo(a, this, null, this.Hb.ti()))
    };
    d.prototype.gw = function(a, b) {
        if (a.visible && 0 !== a.width && 0 !== a.height) {
            a.Ga();
            var c = a.Ra;
            c.right < this.Ea || c.bottom < this.Fa || c.left > this.Ia || c.top > this.Ha || (b.El(a.Yf), a.Ks ? this.iw(a, b) : (b.Cc(0), b.Ff(a.lc, a.gc), a.ld(b)))
        }
    };
    d.prototype.hw = function(a, b) {
        if (a.visible && 0 !== a.width && 0 !== a.height) {
            a.Ga();
            var c = a.Ra;
            c.right < this.Ea || c.bottom < this.Fa || c.left > this.Ia || c.top > this.Ha || (a.Yf = this.b.Yf++, 0 === a.ec && 1 === a.opacity && a.Ue && a.Pg && (b.El(a.Yf), a.Pg(b)))
        }
    };
    d.prototype.iw = function(a, b) {
        var c = a.wa[0].rb,
        d = a.wa[0].index,
        f = this.md();
        if (1 !== a.wa.length || b.eo(c) || b.Ny(c) || (a.k || a.q.Ub()) && b.ij(c) || 1 !== a.opacity || a.type.Ca.lr) this.Hb.jo(b, this, a, this.ie ? this.b.Ab: this.Hb.ti()),
        b.je(),
        b.scale(f, f),
        b.mo( - this.Ub()),
        b.translate((this.Ea + this.Ia) / -2, (this.Fa + this.Ha) / -2),
        b.Sd();
        else {
            b.Cc(c);
            b.Ff(a.lc, a.gc);
            b.ul(c) && (this.b.ya = !0);
            var h = 0,
            n = 0,
            m = 0,
            u = 0;
            b.ij(c) && (u = a.Ra, h = this.oc(u.left, u.top, !0, !0), n = this.oc(u.left, u.top, !1, !0), m = this.oc(u.right, u.bottom, !0, !0), u = this.oc(u.right, u.bottom, !1, !0), h = h / windowWidth, n = 1 - n / windowHeight, m = m / windowWidth, u = 1 - u / windowHeight);
            var q;
            a.Ma && a.Ma.Da ? (q = a.Ma.Da, c = 1 / q.width, q = 1 / q.height) : (c = 1 / a.width, q = 1 / a.height);
            b.Ch(this.ie ? this.b.Ab: this.Hb.ti(), c, q, h, n, m, u, f, this.Ub(), this.Ea, this.Fa, (this.Ea + this.Ia) / 2, (this.Fa + this.Ha) / 2, this.b.Vb.na, a.Ua[d]);
            a.ld(b)
        }
    };
    d.prototype.Rb = function(a, b, c, d) {
        var f = this.b.devicePixelRatio;
        this.b.jg && (a *= f, b *= f);
        var f = this.b.Kr,
        h = this.b.Lr,
        f = (this.Hb.scrollX - f) * this.rd + f,
        h = (this.Hb.scrollY - h) * this.sd + h,
        n = f,
        m = h,
        u = 1 / this.md(!d);
        d ? (n -= this.b.M * u / 2, m -= this.b.L * u / 2) : (n -= this.b.width * u / 2, m -= this.b.height * u / 2);
        n += a * u;
        m += b * u;
        b = this.Ub();
        0 !== b && (n -= f, m -= h, a = Math.cos(b), b = Math.sin(b), d = n * a - m * b, m = m * a + n * b, n = d + f, m += h);
        return c ? n: m
    };
    d.prototype.oc = function(a, b, c, d) {
        var f = this.b.Kr,
        h = this.b.Lr,
        n = (this.Hb.scrollX - f) * this.rd + f,
        m = (this.Hb.scrollY - h) * this.sd + h,
        h = n,
        f = m,
        u = this.Ub();
        if (0 !== u) {
            a -= n;
            b -= m;
            var q = Math.cos( - u),
            u = Math.sin( - u),
            r = a * q - b * u;
            b = b * q + a * u;
            a = r + n;
            b += m
        }
        n = 1 / this.md(!d);
        d ? (h -= this.b.M * n / 2, f -= this.b.L * n / 2) : (h -= this.b.width * n / 2, f -= this.b.height * n / 2);
        h = (a - h) / n;
        f = (b - f) / n;
        a = this.b.devicePixelRatio;
        this.b.jg && !d && (h /= a, f /= a);
        return c ? h: f
    };
    d.prototype.Lb = function() {
        var a, b, c, d = {
            s: this.scale,
            a: this.k,
            vl: this.Ea,
            vt: this.Fa,
            vr: this.Ia,
            vb: this.Ha,
            v: this.visible,
            bc: this.Fd,
            t: this.Qd,
            px: this.rd,
            py: this.sd,
            o: this.opacity,
            zr: this.Ud,
            fx: [],
            cg: this.bi,
            instances: []
        };
        a = 0;
        for (b = this.S.length; a < b; a++) c = this.S[a],
        d.fx.push({
            name: c.name,
            active: c.Qa,
            params: this.Ua[c.index]
        });
        return d
    };
    d.prototype.kc = function(a) {
        var b, c, d;
        this.scale = a.s;
        this.k = a.a;
        this.Ea = a.vl;
        this.Fa = a.vt;
        this.Ia = a.vr;
        this.Ha = a.vb;
        this.visible = a.v;
        this.Fd = a.bc;
        this.Qd = a.t;
        this.rd = a.px;
        this.sd = a.py;
        this.opacity = a.o;
        this.Ud = a.zr;
        this.bi = a.cg || [];
        Ca(this.Uc, this.ss);
        var h = new ca;
        b = 0;
        for (d = this.bi.length; b < d; ++b) h.add(this.bi[b]);
        c = b = 0;
        for (d = this.Uc.length; b < d; ++b) h.contains(this.Uc[b][2]) || (this.Uc[c] = this.Uc[b], ++c);
        Aa(this.Uc, c);
        c = a.fx;
        b = 0;
        for (d = c.length; b < d; b++) if (a = this.Vm(c[b].name)) a.Qa = c[b].active,
        this.Ua[a.index] = c[b].params;
        this.Rd();
        this.d.sort(f);
        this.Dg = !0
    };
    $b = d
})(); (function() {
    function h(a, b) {
        var c, e = a.length;
        switch (e) {
        case 0:
            return ! 0;
        case 1:
            return a[0] === b[0];
        case 2:
            return a[0] === b[0] && a[1] === b[1];
        default:
            for (c = 0; c < e; c++) if (a[c] !== b[c]) return ! 1;
            return ! 0
        }
    }
    function f(a, b) {
        return a.index - b.index
    }
    function d(a) {
        var b, c, e, g;
        2 === a.length ? a[0].index > a[1].index && (b = a[0], a[0] = a[1], a[1] = b) : 2 < a.length && a.sort(f);
        a.length >= w.length && (w.length = a.length + 1);
        w[a.length] || (w[a.length] = []);
        g = w[a.length];
        b = 0;
        for (c = g.length; b < c; b++) if (e = g[b], h(a, e)) return e;
        g.push(a);
        return a
    }
    function n(a, b) {
        this.b = a;
        this.Bs = {};
        this.Xp = {};
        this.dn = !1;
        this.sq = new ca;
        this.Gm = [];
        this.om = [];
        this.name = b[0];
        var c = b[1];
        this.qf = [];
        var e, g;
        e = 0;
        for (g = c.length; e < g; e++) this.uq(c[e], null, this.qf)
    }
    function q(a) {
        this.type = a;
        this.d = [];
        this.ca = [];
        this.ea = !0
    }
    function p(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.b = a.b;
        this.fa = [];
        this.Gf = [];
        this.rq = this.Sl = this.Do = this.Ik = this.group = this.wo = !1;
        this.ub = [];
        this.Bd = [];
        this.ud = [];
        this.wi = "";
        this.Wg = this.Ik = this.group = !1;
        this.dk = null;
        c[1] && (this.wi = c[1][1].toLowerCase(), this.group = !0, this.Ik = !!c[1][0], this.dk = [], this.Wg = this.Ik, this.b.ff.push(this), this.b.xi[this.wi] = this);
        this.Yc = c[2];
        this.ga = c[4];
        this.group || (this.b.Ep[this.ga.toString()] = this);
        var e = c[5];
        a = 0;
        for (b = e.length; a < b; a++) {
            var g = new ac(this, e[a]);
            g.index = a;
            this.ub.push(g);
            this.yp(g.type)
        }
        e = c[6];
        a = 0;
        for (b = e.length; a < b; a++) g = new bc(this, e[a]),
        g.index = a,
        this.Bd.push(g);
        if (8 === c.length) for (c = c[7], a = 0, b = c.length; a < b; a++) this.sheet.uq(c[a], this, this.ud);
        this.Rk = !1;
        this.ub.length && (this.Rk = null == this.ub[0].type && this.ub[0].Tb == G.prototype.j.Uo)
    }
    function r(a, b) {
        var c, e, g;
        if (a && ( - 1 === b.indexOf(a) && b.push(a), a.nc)) for (c = 0, e = a.Gc.length; c < e; c++) g = a.Gc[c],
        a !== g && -1 === b.indexOf(g) && b.push(g)
    }
    function a(a, b) {
        this.Nc = a;
        this.sheet = a.sheet;
        this.b = a.b;
        this.X = [];
        this.Wa = [];
        this.xa = {};
        this.index = -1;
        this.Vh = !1;
        this.Tb = this.b.bf(b[1]);
        this.trigger = 0 < b[3];
        this.Wp = 2 === b[3];
        this.de = b[4];
        this.Jk = b[5];
        this.by = b[6];
        this.ga = b[7];
        this.b.lf[this.ga.toString()] = this; - 1 === b[0] ? (this.type = null, this.qb = this.oo, this.Qf = null, this.Gd = -1) : (this.type = this.b.F[b[0]], this.qb = this.by ? this.fz: this.no, b[2] ? (this.Qf = this.type.zk(b[2]), this.Gd = this.type.Sm(b[2])) : (this.Qf = null, this.Gd = -1), this.Nc.parent && this.Nc.parent.Fl());
        this.Wp && (this.qb = this.gz);
        if (10 === b.length) {
            var c, e, g = b[9];
            c = 0;
            for (e = g.length; c < e; c++) {
                var d = new cc(this, g[c]);
                this.X.push(d)
            }
            this.Wa.length = g.length
        }
    }
    function b(a, b) {
        this.Nc = a;
        this.sheet = a.sheet;
        this.b = a.b;
        this.X = [];
        this.Wa = [];
        this.xa = {};
        this.index = -1;
        this.Vh = !1;
        this.Tb = this.b.bf(b[1]); - 1 === b[0] ? (this.type = null, this.qb = this.oo, this.Qf = null, this.Gd = -1) : (this.type = this.b.F[b[0]], this.qb = this.no, b[2] ? (this.Qf = this.type.zk(b[2]), this.Gd = this.type.Sm(b[2])) : (this.Qf = null, this.Gd = -1));
        this.ga = b[3];
        this.b.ef[this.ga.toString()] = this;
        if (6 === b.length) {
            var c, e, g = b[5];
            c = 0;
            for (e = g.length; c < e; c++) {
                var d = new cc(this, g[c]);
                this.X.push(d)
            }
            this.Wa.length = g.length
        }
    }
    function c() {
        P++;
        M.length === P && M.push(new dc);
        return M[P]
    }
    function g(a, b) {
        this.qd = a;
        this.Nc = a.Nc;
        this.sheet = a.sheet;
        this.b = a.b;
        this.type = b[0];
        this.Yd = null;
        this.Ve = 0;
        this.get = null;
        this.Np = 0;
        this.Hb = null;
        this.key = 0;
        this.object = null;
        this.index = 0;
        this.Dj = this.zg = this.Dj = this.zg = this.$p = this.bg = this.Ej = null;
        this.wd = !1;
        var c, e, g;
        switch (b[0]) {
        case 0:
        case 7:
            this.Yd = new ec(this, b[1]);
            this.Ve = 0;
            this.get = this.xx;
            break;
        case 1:
            this.Yd = new ec(this, b[1]);
            this.Ve = 0;
            this.get = this.yx;
            break;
        case 5:
            this.Yd = new ec(this, b[1]);
            this.Ve = 0;
            this.get = this.Cx;
            break;
        case 3:
        case 8:
            this.Np = b[1];
            this.get = this.vx;
            break;
        case 6:
            this.Hb = this.b.yn[b[1]];
            this.get = this.Dx;
            break;
        case 9:
            this.key = b[1];
            this.get = this.Bx;
            break;
        case 4:
            this.object = this.b.F[b[1]];
            this.get = this.Ex;
            this.Nc.yp(this.object);
            this.qd instanceof bc ? this.Nc.Fl() : this.Nc.parent && this.Nc.parent.Fl();
            break;
        case 10:
            this.index = b[1];
            a.type && a.type.T ? (this.get = this.zx, this.wd = !0) : this.get = this.Ax;
            break;
        case 11:
            this.Ej = b[1];
            this.bg = null;
            this.get = this.wx;
            break;
        case 2:
        case 12:
            this.$p = b[1];
            this.get = this.ux;
            break;
        case 13:
            for (this.get = this.Fx, this.zg = [], this.Dj = [], c = 1, e = b.length; c < e; c++) g = new cc(this.qd, b[c]),
            this.zg.push(g),
            this.Dj.push(0)
        }
    }
    function e(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.b = a.b;
        this.fa = [];
        this.name = c[1];
        this.Fj = c[2];
        this.Hk = c[3];
        this.Li = !!c[4];
        this.Qk = !!c[5];
        this.ga = c[6];
        this.b.Ph[this.ga.toString()] = this;
        this.data = this.Hk;
        this.parent ? (this.ug = this.Li || this.Qk ? -1 : this.b.rz++, this.b.wv.push(this)) : (this.ug = -1, this.b.nm.push(this))
    }
    function k(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.b = a.b;
        this.fa = [];
        this.Ai = null;
        this.Lx = c[1];
        this.Qa = !0
    }
    function l() {
        this.us = [];
        this.reset(null)
    }
    var w = [];
    n.prototype.toString = function() {
        return this.name
    };
    n.prototype.uq = function(a, b, c) {
        switch (a[0]) {
        case 0:
            a = new fc(this, b, a);
            if (a.Yc) for (c.push(a), c = 0, b = a.ub.length; c < b; c++) a.ub[c].trigger && this.vq(a, c);
            else a.Fq() ? this.vq(a, 0) : c.push(a);
            break;
        case 1:
            a = new Xb(this, b, a);
            c.push(a);
            break;
        case 2:
            a = new gc(this, b, a),
            c.push(a)
        }
    };
    n.prototype.gb = function() {
        var a, b;
        a = 0;
        for (b = this.qf.length; a < b; a++) this.qf[a].gb(a < b - 1 && this.qf[a + 1].Rk)
    };
    n.prototype.Jo = function() {
        A(this.Gm);
        A(this.om);
        this.xp(this);
        A(this.om)
    };
    n.prototype.xp = function(a) {
        var b, c, e, g, d = a.Gm,
        l = a.om,
        f = this.sq.Jf();
        b = 0;
        for (c = f.length; b < c; ++b) e = f[b],
        g = e.Ai,
        !e.Qa || a === g || -1 < l.indexOf(g) || (l.push(g), g.xp(a), d.push(g))
    };
    n.prototype.qb = function(a) {
        this.b.fB || (this.dn = !0, a || (this.b.qn = !0));
        var b, c;
        b = 0;
        for (c = this.qf.length; b < c; b++) {
            var e = this.qf[b];
            e.qb();
            this.b.zm(e.fa);
            this.b.tf && this.b.ac()
        }
        a || (this.b.qn = !1)
    };
    n.prototype.vq = function(a, b) {
        a.Yc || this.b.Vl.push(a);
        var c, e, g = a.ub[b],
        d;
        g.type ? d = g.type.name: d = "system";
        var l = (c = g.Wp) ? this.Xp: this.Bs;
        l[d] || (l[d] = []);
        d = l[d];
        l = g.Tb;
        if (c) {
            if (g.X.length && (g = g.X[0], 1 === g.type && 2 === g.Yd.type)) {
                g = g.Yd.value.toLowerCase();
                c = 0;
                for (e = d.length; c < e; c++) if (d[c].method == l) {
                    c = d[c].hi;
                    c[g] ? c[g].push([a, b]) : c[g] = [[a, b]];
                    return
                }
                c = {};
                c[g] = [[a, b]];
                d.push({
                    method: l,
                    hi: c
                })
            }
        } else {
            c = 0;
            for (e = d.length; c < e; c++) if (d[c].method == l) {
                d[c].hi.push([a, b]);
                return
            }
            R && l === R.prototype.j.Gg ? d.unshift({
                method: l,
                hi: [[a, b]]
            }) : d.push({
                method: l,
                hi: [[a, b]]
            })
        }
    };
    Jb = n;
    q.prototype.cn = function() {
        return this.ea ? this.type.d.length: this.d.length
    };
    q.prototype.vc = function() {
        return this.ea ? this.type.d: this.d
    };
    q.prototype.gj = function(a) {
        a && (a.b.bb().jb.Yc ? (this.ea && (A(this.d), Ca(this.ca, a.type.d), this.ea = !1), a = this.ca.indexOf(a), -1 !== a && (this.d.push(this.ca[a]), this.ca.splice(a, 1))) : (this.ea = !1, A(this.d), this.d[0] = a))
    };
    qb = q;
    window._c2hh_ = "B53719B1A9AE2372B2E9B5A0BEE97DB145F6C5E4";
    p.prototype.gb = function(a) {
        var b, c = this.parent;
        if (this.group) for (this.Sl = !0; c;) {
            if (!c.group) {
                this.Sl = !1;
                break
            }
            c = c.parent
        }
        this.Do = !this.Fq() && (!this.parent || this.parent.group && this.parent.Sl);
        this.rq = !!a;
        this.Gf = this.fa.slice(0);
        for (c = this.parent; c;) {
            a = 0;
            for (b = c.fa.length; a < b; a++) this.uv(c.fa[a]);
            c = c.parent
        }
        this.fa = d(this.fa);
        this.Gf = d(this.Gf);
        a = 0;
        for (b = this.ub.length; a < b; a++) this.ub[a].gb();
        a = 0;
        for (b = this.Bd.length; a < b; a++) this.Bd[a].gb();
        a = 0;
        for (b = this.ud.length; a < b; a++) this.ud[a].gb(a < b - 1 && this.ud[a + 1].Rk)
    };
    p.prototype.ds = function(a) {
        if (this.Wg !== !!a) {
            this.Wg = !!a;
            var b;
            a = 0;
            for (b = this.dk.length; a < b; ++a) this.dk[a].Gs();
            0 < b && this.b.ma.ag && this.b.ma.ag.Jo()
        }
    };
    p.prototype.yp = function(a) {
        r(a, this.fa)
    };
    p.prototype.uv = function(a) {
        r(a, this.Gf)
    };
    p.prototype.Fl = function() {
        this.wo = !0;
        this.parent && this.parent.Fl()
    };
    p.prototype.Fq = function() {
        return this.ub.length ? this.ub[0].trigger: !1
    };
    p.prototype.qb = function() {
        var a, b, c = !1,
        e = this.b,
        g = this.b.bb();
        g.jb = this;
        var d = this.ub;
        this.Rk || (g.Km = !1);
        if (this.Yc) {
            0 === d.length && (c = !0);
            g.ib = 0;
            for (a = d.length; g.ib < a; g.ib++) b = d[g.ib],
            b.trigger || (b = b.qb()) && (c = !0); (g.mg = c) && this.Al()
        } else {
            g.ib = 0;
            for (a = d.length; g.ib < a; g.ib++) if (b = d[g.ib].qb(), !b) {
                g.mg = !1;
                this.Do && e.tf && e.ac();
                return
            }
            g.mg = !0;
            this.Al()
        }
        this.mw(g)
    };
    p.prototype.mw = function(a) {
        a.mg && this.rq && (a.Km = !0);
        this.Do && this.b.tf && this.b.ac()
    };
    p.prototype.dz = function(a) {
        this.b.bb().jb = this;
        this.ub[a].qb() && (this.Al(), this.b.bb().mg = !0)
    };
    p.prototype.Al = function() {
        var a = this.b.bb(),
        b;
        a.Ec = 0;
        for (b = this.Bd.length; a.Ec < b; a.Ec++) if (this.Bd[a.Ec].qb()) return;
        this.Xr()
    };
    p.prototype.az = function() {
        var a = this.b.bb(),
        b;
        for (b = this.Bd.length; a.Ec < b; a.Ec++) if (this.Bd[a.Ec].qb()) return;
        this.Xr()
    };
    p.prototype.Xr = function() {
        if (this.ud.length) {
            var a, b, c, e, g = this.ud.length - 1;
            this.b.wl(this);
            if (this.wo) for (a = 0, b = this.ud.length; a < b; a++) c = this.ud[a],
            (e = !this.Sl || !this.group && a < g) && this.b.Cf(c.fa),
            c.qb(),
            e ? this.b.Md(c.fa) : this.b.zm(c.fa);
            else for (a = 0, b = this.ud.length; a < b; a++) this.ud[a].qb();
            this.b.rl()
        }
    };
    p.prototype.ez = function() {
        var a = this.b.bb();
        a.jb = this;
        var b = !1,
        c;
        a.ib = 0;
        for (c = this.ub.length; a.ib < c; a.ib++) if (this.ub[a.ib].qb()) b = !0;
        else if (!this.Yc) return ! 1;
        return this.Yc ? b: !0
    };
    p.prototype.Ef = function() {
        this.b.ii++;
        var a = this.b.bb().ib,
        b = this.b.wl(this);
        if (!this.Yc) for (b.ib = a + 1, a = this.ub.length; b.ib < a; b.ib++) if (!this.ub[b.ib].qb()) {
            this.b.rl();
            return
        }
        this.Al();
        this.b.rl()
    };
    p.prototype.Vx = function(a) {
        var b = a.index;
        if (0 === b) return ! 0;
        for (--b; 0 <= b; --b) if (this.ub[b].type === a.type) return ! 1;
        return ! 0
    };
    fc = p;
    a.prototype.gb = function() {
        var a, b, c;
        a = 0;
        for (b = this.X.length; a < b; a++) c = this.X[a],
        c.gb(),
        c.wd && (this.Vh = !0)
    };
    a.prototype.gz = function() {
        return ! 0
    };
    a.prototype.oo = function() {
        var a, b;
        a = 0;
        for (b = this.X.length; a < b; a++) this.Wa[a] = this.X[a].get();
        return Ua(this.Tb.apply(this.b.ke, this.Wa), this.Jk)
    };
    a.prototype.fz = function() {
        var a, b;
        a = 0;
        for (b = this.X.length; a < b; a++) this.Wa[a] = this.X[a].get();
        a = this.Tb.apply(this.Qf ? this.Qf: this.type, this.Wa);
        this.type.dd();
        return a
    };
    a.prototype.no = function() {
        var a, b, c, e, g, d, l, f, k = this.type,
        h = k.U(),
        n = this.Nc.Yc && !this.trigger;
        b = 0;
        var q = k.nc,
        r = k.T,
        p = k.De,
        w = this.Gd,
        M = -1 < w,
        P = this.Vh,
        z = this.X,
        x = this.Wa,
        O = this.Jk,
        y = this.Tb,
        K;
        if (P) for (b = 0, g = z.length; b < g; ++b) d = z[b],
        d.wd || (x[b] = d.get(0));
        else for (b = 0, g = z.length; b < g; ++b) x[b] = z[b].get(0);
        if (h.ea) {
            A(h.d);
            A(h.ca);
            K = k.d;
            a = 0;
            for (e = K.length; a < e; ++a) {
                f = K[a];
                if (P) for (b = 0, g = z.length; b < g; ++b) d = z[b],
                d.wd && (x[b] = d.get(a));
                M ? (b = 0, r && (b = f.type.Rg[p]), b = y.apply(f.Z[w + b], x)) : b = y.apply(f, x); (l = Ua(b, O)) ? h.d.push(f) : n && h.ca.push(f)
            }
            k.finish && k.finish(!0);
            h.ea = !1;
            k.dd();
            return h.cn()
        }
        c = 0;
        K = (l = n && !this.Nc.Vx(this)) ? h.ca: h.d;
        var E = !1;
        a = 0;
        for (e = K.length; a < e; ++a) {
            f = K[a];
            if (P) for (b = 0, g = z.length; b < g; ++b) d = z[b],
            d.wd && (x[b] = d.get(a));
            M ? (b = 0, r && (b = f.type.Rg[p]), b = y.apply(f.Z[w + b], x)) : b = y.apply(f, x);
            if (Ua(b, O)) if (E = !0, l) {
                if (h.d.push(f), q) for (b = 0, g = f.siblings.length; b < g; b++) d = f.siblings[b],
                d.type.U().d.push(d)
            } else {
                K[c] = f;
                if (q) for (b = 0, g = f.siblings.length; b < g; b++) d = f.siblings[b],
                d.type.U().d[c] = d;
                c++
            } else if (l) {
                K[c] = f;
                if (q) for (b = 0, g = f.siblings.length; b < g; b++) d = f.siblings[b],
                d.type.U().ca[c] = d;
                c++
            } else if (n && (h.ca.push(f), q)) for (b = 0, g = f.siblings.length; b < g; b++) d = f.siblings[b],
            d.type.U().ca.push(d)
        }
        Aa(K, c);
        if (q) for (r = k.Gc, a = 0, e = r.length; a < e; a++) f = r[a].U(),
        l ? Aa(f.ca, c) : Aa(f.d, c);
        c = E;
        if (l && !E) for (a = 0, e = h.d.length; a < e; a++) {
            f = h.d[a];
            if (P) for (b = 0, g = z.length; b < g; b++) d = z[b],
            d.wd && (x[b] = d.get(a));
            b = M ? y.apply(f.Z[w], x) : y.apply(f, x);
            if (Ua(b, O)) {
                E = !0;
                break
            }
        }
        k.finish && k.finish(c || n);
        return n ? E: h.cn()
    };
    ac = a;
    b.prototype.gb = function() {
        var a, b, c;
        a = 0;
        for (b = this.X.length; a < b; a++) c = this.X[a],
        c.gb(),
        c.wd && (this.Vh = !0)
    };
    b.prototype.oo = function() {
        var a = this.b,
        b, c, e = this.X,
        g = this.Wa;
        b = 0;
        for (c = e.length; b < c; ++b) g[b] = e[b].get();
        return this.Tb.apply(a.ke, g)
    };
    b.prototype.no = function() {
        var a = this.type,
        b = this.Gd,
        c = a.De,
        e = this.Vh,
        g = this.X,
        d = this.Wa,
        l = this.Tb,
        f = a.U().vc(),
        a = a.T,
        k = -1 < b,
        h,
        n,
        q,
        r,
        p,
        w;
        if (e) for (n = 0, r = g.length; n < r; ++n) p = g[n],
        p.wd || (d[n] = p.get(0));
        else for (n = 0, r = g.length; n < r; ++n) d[n] = g[n].get(0);
        h = 0;
        for (q = f.length; h < q; ++h) {
            w = f[h];
            if (e) for (n = 0, r = g.length; n < r; ++n) p = g[n],
            p.wd && (d[n] = p.get(h));
            k ? (n = 0, a && (n = w.type.Rg[c]), l.apply(w.Z[b + n], d)) : l.apply(w, d)
        }
        return ! 1
    };
    bc = b;
    var M = [],
    P = -1;
    g.prototype.gb = function() {
        var a, b;
        if (11 === this.type) this.bg = this.b.kq(this.Ej, this.Nc.parent);
        else if (13 === this.type) for (a = 0, b = this.zg.length; a < b; a++) this.zg[a].gb();
        this.Yd && this.Yd.gb()
    };
    g.prototype.qy = function(a) {
        this.wd || !a || a.Ca.Hl || (this.wd = !0)
    };
    g.prototype.hs = function() {
        this.wd = !0
    };
    g.prototype.xx = function(a) {
        this.Ve = a || 0;
        a = c();
        this.Yd.get(a);
        P--;
        return a.data
    };
    g.prototype.yx = function(a) {
        this.Ve = a || 0;
        a = c();
        this.Yd.get(a);
        P--;
        return la(a.data) ? a.data: ""
    };
    g.prototype.Ex = function() {
        return this.object
    };
    g.prototype.vx = function() {
        return this.Np
    };
    g.prototype.Cx = function(a) {
        this.Ve = a || 0;
        a = c();
        this.Yd.get(a);
        P--;
        return a.Gb() ? this.b.Ug(a.data) : this.b.Bk(a.data)
    };
    g.prototype.Dx = function() {
        return this.Hb
    };
    g.prototype.Bx = function() {
        return this.key
    };
    g.prototype.Ax = function() {
        return this.index
    };
    g.prototype.zx = function(a) {
        a = a || 0;
        var b = this.qd.type,
        c = null,
        c = b.U(),
        e = c.vc();
        if (e.length) c = e[a % e.length].type;
        else if (c.ca.length) c = c.ca[a % c.ca.length].type;
        else if (b.d.length) c = b.d[a % b.d.length].type;
        else return 0;
        return this.index + c.sk[b.De]
    };
    g.prototype.wx = function() {
        return this.bg
    };
    g.prototype.ux = function() {
        return this.$p
    };
    g.prototype.Fx = function() {
        var a, b;
        a = 0;
        for (b = this.zg.length; a < b; a++) this.Dj[a] = this.zg[a].get();
        return this.Dj
    };
    cc = g;
    e.prototype.gb = function() {
        this.fa = d(this.fa)
    };
    e.prototype.Te = function(a) {
        var b = this.b.iq();
        this.parent && !this.Li && b ? (this.ug >= b.length && (b.length = this.ug + 1), b[this.ug] = a) : this.data = a
    };
    e.prototype.dg = function() {
        var a = this.b.iq();
        return ! this.parent || this.Li || !a || this.Qk ? this.data: this.ug >= a.length || "undefined" === typeof a[this.ug] ? this.Hk: a[this.ug]
    };
    e.prototype.qb = function() { ! this.parent || this.Li || this.Qk || this.Te(this.Hk)
    };
    Xb = e;
    k.prototype.toString = function() {
        return "include:" + this.Ai.toString()
    };
    k.prototype.gb = function() {
        this.Ai = this.b.Mm[this.Lx];
        this.sheet.sq.add(this);
        this.fa = d(this.fa);
        for (var a = this.parent; a;) a.group && a.dk.push(this),
        a = a.parent;
        this.Gs()
    };
    k.prototype.qb = function() {
        this.parent && this.b.jj(this.b.F);
        this.Ai.dn || this.Ai.qb(!0);
        this.parent && this.b.Md(this.b.F)
    };
    k.prototype.Gs = function() {
        for (var a = this.parent; a;) {
            if (a.group && !a.Wg) {
                this.Qa = !1;
                return
            }
            a = a.parent
        }
        this.Qa = !0
    };
    gc = k;
    l.prototype.reset = function(a) {
        this.jb = a;
        this.Ec = this.ib = 0;
        A(this.us);
        this.Km = this.mg = !1
    };
    l.prototype.Bq = function() {
        return this.jb.wo ? !0 : this.ib < this.jb.ub.length - 1 ? !!this.jb.fa.length: !1
    };
    Wb = l
})(); (function() {
    function h(d, a) {
        this.qd = d;
        this.b = d.b;
        this.type = a[0];
        this.get = [this.Gw, this.Cw, this.Pw, this.Sw, this.qw, this.Qw, this.Kw, this.zw, this.Jw, this.Ow, this.rw, this.Nw, this.Aw, this.Lw, this.Hw, this.Iw, this.Dw, this.Ew, this.yw, this.Rw, this.Mw, this.Fw, this.xw, this.Bw][this.type];
        var b = null;
        this.Me = this.X = this.Wa = this.Tb = this.Pl = this.second = this.first = this.value = null;
        this.Gd = -1;
        this.Id = null;
        this.Ls = -1;
        this.bg = this.Ej = null;
        this.zh = !1;
        switch (this.type) {
        case 0:
        case 1:
        case 2:
            this.value = a[1];
            break;
        case 3:
            this.first = new ec(d, a[1]);
            break;
        case 18:
            this.first = new ec(d, a[1]);
            this.second = new ec(d, a[2]);
            this.Pl = new ec(d, a[3]);
            break;
        case 19:
            this.Tb = this.b.bf(a[1]);
            this.Tb !== G.prototype.I.random && this.Tb !== G.prototype.I.Lp || this.qd.hs();
            this.Wa = [];
            this.X = [];
            3 === a.length ? (b = a[2], this.Wa.length = b.length + 1) : this.Wa.length = 1;
            break;
        case 20:
            this.Me = this.b.F[a[1]];
            this.Gd = -1;
            this.Tb = this.b.bf(a[2]);
            this.zh = a[3];
            sc && this.Tb === sc.prototype.I.Us && this.qd.hs();
            a[4] ? this.Id = new ec(d, a[4]) : this.Id = null;
            this.Wa = [];
            this.X = [];
            6 === a.length ? (b = a[5], this.Wa.length = b.length + 1) : this.Wa.length = 1;
            break;
        case 21:
            this.Me = this.b.F[a[1]];
            this.zh = a[2];
            a[3] ? this.Id = new ec(d, a[3]) : this.Id = null;
            this.Ls = a[4];
            break;
        case 22:
            this.Me = this.b.F[a[1]];
            this.Me.zk(a[2]);
            this.Gd = this.Me.Sm(a[2]);
            this.Tb = this.b.bf(a[3]);
            this.zh = a[4];
            a[5] ? this.Id = new ec(d, a[5]) : this.Id = null;
            this.Wa = [];
            this.X = [];
            7 === a.length ? (b = a[6], this.Wa.length = b.length + 1) : this.Wa.length = 1;
            break;
        case 23:
            this.Ej = a[1],
            this.bg = null
        }
        this.qd.qy(this.Me);
        4 <= this.type && 17 >= this.type && (this.first = new ec(d, a[1]), this.second = new ec(d, a[2]));
        if (b) {
            var c, g;
            c = 0;
            for (g = b.length; c < g; c++) this.X.push(new ec(d, b[c]))
        }
    }
    function f() {++p;
        q.length === p && q.push(new dc);
        return q[p]
    }
    function d(d, a, b) {
        var c, g;
        c = 0;
        for (g = d.length; c < g; ++c) d[c].get(b),
        a[c + 1] = b.data
    }
    function n(d, a) {
        this.type = d || hc.Fg;
        this.data = a || 0;
        this.wg = null;
        this.type == hc.Fg && (this.data = Math.floor(this.data))
    }
    h.prototype.gb = function() {
        23 === this.type && (this.bg = this.qd.b.kq(this.Ej, this.qd.Nc.parent));
        this.first && this.first.gb();
        this.second && this.second.gb();
        this.Pl && this.Pl.gb();
        this.Id && this.Id.gb();
        if (this.X) {
            var d, a;
            d = 0;
            for (a = this.X.length; d < a; d++) this.X[d].gb()
        }
    };
    var q = [],
    p = -1;
    h.prototype.Rw = function(h) {
        var a = this.X,
        b = this.Wa;
        b[0] = h;
        h = f();
        d(a, b, h); --p;
        this.Tb.apply(this.b.ke, b)
    };
    h.prototype.Mw = function(h) {
        var a = this.Me,
        b = this.Wa,
        c = this.X,
        g = this.Id,
        e = this.Tb,
        k = this.qd.Ve,
        l = a.U(),
        n = l.vc();
        if (!n.length) if (l.ca.length) n = l.ca;
        else {
            this.zh ? h.La("") : h.P(0);
            return
        }
        b[0] = h;
        h.wg = a;
        h = f();
        d(c, b, h);
        g && (g.get(h), h.Gb() && (k = h.data, n = a.d)); --p;
        a = n.length;
        if (k >= a || k <= -a) k %= a;
        0 > k && (k += a);
        e.apply(n[k], b)
    };
    h.prototype.xw = function(h) {
        var a = this.Me,
        b = this.Wa,
        c = this.X,
        g = this.Id,
        e = this.Gd,
        k = this.Tb,
        l = this.qd.Ve,
        n = a.U(),
        q = n.vc();
        if (!q.length) if (n.ca.length) q = n.ca;
        else {
            this.zh ? h.La("") : h.P(0);
            return
        }
        b[0] = h;
        h.wg = a;
        h = f();
        d(c, b, h);
        g && (g.get(h), h.Gb() && (l = h.data, q = a.d)); --p;
        c = q.length;
        if (l >= c || l <= -c) l %= c;
        0 > l && (l += c);
        l = q[l];
        q = 0;
        a.T && (q = l.type.Rg[a.De]);
        k.apply(l.Z[e + q], b)
    };
    h.prototype.Fw = function(d) {
        var a = this.Id,
        b = this.Me,
        c = this.Ls,
        g = this.qd.Ve,
        e = b.U(),
        k = e.vc();
        if (!k.length) if (e.ca.length) k = e.ca;
        else {
            this.zh ? d.La("") : d.P(0);
            return
        }
        if (a) {
            e = f();
            a.get(e);
            if (e.Gb()) {
                g = e.data;
                k = b.d;
                0 !== k.length && (g %= k.length, 0 > g && (g += k.length));
                g = b.Xm(g);
                b = g.yb[c];
                la(b) ? d.La(b) : d.G(b); --p;
                return
            }--p
        }
        a = k.length;
        if (g >= a || g <= -a) g %= a;
        0 > g && (g += a);
        g = k[g];
        k = 0;
        b.T && (k = g.type.sk[b.De]);
        b = g.yb[c + k];
        la(b) ? d.La(b) : d.G(b)
    };
    h.prototype.Gw = function(d) {
        d.type = hc.Fg;
        d.data = this.value
    };
    h.prototype.Cw = function(d) {
        d.type = hc.Eg;
        d.data = this.value
    };
    h.prototype.Pw = function(d) {
        d.type = hc.String;
        d.data = this.value
    };
    h.prototype.Sw = function(d) {
        this.first.get(d);
        d.Gb() && (d.data = -d.data)
    };
    h.prototype.qw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data += a.data, a.ah() && d.mh()); --p
    };
    h.prototype.Qw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data -= a.data, a.ah() && d.mh()); --p
    };
    h.prototype.Kw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data *= a.data, a.ah() && d.mh()); --p
    };
    h.prototype.zw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data /= a.data, d.mh()); --p
    };
    h.prototype.Jw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data %= a.data, a.ah() && d.mh()); --p
    };
    h.prototype.Ow = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data = Math.pow(d.data, a.data), a.ah() && d.mh()); --p
    };
    h.prototype.rw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        a.eh() || d.eh() ? this.uw(d, a) : this.sw(d, a); --p
    };
    h.prototype.uw = function(d, a) {
        d.eh() && a.eh() ? this.ww(d, a) : this.vw(d, a)
    };
    h.prototype.ww = function(d, a) {
        d.data += a.data
    };
    h.prototype.vw = function(d, a) {
        d.eh() ? d.data += (Math.round(1E10 * a.data) / 1E10).toString() : d.La(d.data.toString() + a.data)
    };
    h.prototype.sw = function(d, a) {
        d.P(d.data && a.data ? 1 : 0)
    };
    h.prototype.Nw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.Gb() && a.Gb() && (d.data || a.data ? d.P(1) : d.P(0)); --p
    };
    h.prototype.yw = function(d) {
        this.first.get(d);
        d.data ? this.second.get(d) : this.Pl.get(d)
    };
    h.prototype.Aw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data === a.data ? 1 : 0); --p
    };
    h.prototype.Lw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data !== a.data ? 1 : 0); --p
    };
    h.prototype.Hw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data < a.data ? 1 : 0); --p
    };
    h.prototype.Iw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data <= a.data ? 1 : 0); --p
    };
    h.prototype.Dw = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data > a.data ? 1 : 0); --p
    };
    h.prototype.Ew = function(d) {
        this.first.get(d);
        var a = f();
        this.second.get(a);
        d.P(d.data >= a.data ? 1 : 0); --p
    };
    h.prototype.Bw = function(d) {
        var a = this.bg.dg();
        ja(a) ? d.G(a) : d.La(a)
    };
    ec = h;
    n.prototype.ah = function() {
        return this.type === hc.Eg
    };
    n.prototype.Gb = function() {
        return this.type === hc.Fg || this.type === hc.Eg
    };
    n.prototype.eh = function() {
        return this.type === hc.String
    };
    n.prototype.mh = function() {
        this.ah() || (this.eh() && (this.data = parseFloat(this.data)), this.type = hc.Eg)
    };
    n.prototype.P = function(d) {
        this.type = hc.Fg;
        this.data = Math.floor(d)
    };
    n.prototype.G = function(d) {
        this.type = hc.Eg;
        this.data = d
    };
    n.prototype.La = function(d) {
        this.type = hc.String;
        this.data = d
    };
    n.prototype.rj = function(d) {
        ja(d) ? (this.type = hc.Eg, this.data = d) : la(d) ? (this.type = hc.String, this.data = d.toString()) : (this.type = hc.Fg, this.data = 0)
    };
    dc = n;
    hc = {
        Fg: 0,
        Eg: 1,
        String: 2
    }
})();
function G(h) {
    this.b = h;
    this.Dc = []
}
G.prototype.Lb = function() {
    var h = {},
    f, d, n, q, p, r, a, b;
    h.waits = [];
    var c = h.waits,
    g;
    f = 0;
    for (d = this.Dc.length; f < d; f++) {
        r = this.Dc[f];
        g = {
            t: r.time,
            st: r.ps,
            s: r.vo,
            ev: r.Qg.ga,
            sm: [],
            sols: {}
        };
        r.Qg.Bd[r.Ec] && (g.act = r.Qg.Bd[r.Ec].ga);
        n = 0;
        for (q = r.fa.length; n < q; n++) g.sm.push(r.fa[n].ga);
        for (p in r.pc) if (r.pc.hasOwnProperty(p)) {
            a = this.b.F[parseInt(p, 10)];
            b = {
                sa: r.pc[p].Bl,
                insts: []
            };
            n = 0;
            for (q = r.pc[p].He.length; n < q; n++) b.insts.push(r.pc[p].He[n].uid);
            g.sols[a.ga.toString()] = b
        }
        c.push(g)
    }
    return h
};
G.prototype.kc = function(h) {
    h = h.waits;
    var f, d, n, q, p, r, a, b, c, g, e;
    A(this.Dc);
    f = 0;
    for (d = h.length; f < d; f++) if (r = h[f], b = this.b.Ep[r.ev.toString()]) {
        c = -1;
        n = 0;
        for (q = b.Bd.length; n < q; n++) if (b.Bd[n].ga === r.act) {
            c = n;
            break
        }
        if ( - 1 !== c) {
            a = {
                pc: {},
                fa: [],
                Hm: !1
            };
            a.time = r.t;
            a.ps = r.st || "";
            a.vo = !!r.s;
            a.Qg = b;
            a.Ec = c;
            n = 0;
            for (q = r.sm.length; n < q; n++)(b = this.b.Dk(r.sm[n])) && a.fa.push(b);
            for (p in r.sols) if (r.sols.hasOwnProperty(p) && (b = this.b.Dk(parseInt(p, 10)))) {
                c = r.sols[p];
                g = {
                    Bl: c.sa,
                    He: []
                };
                n = 0;
                for (q = c.insts.length; n < q; n++)(e = this.b.si(c.insts[n])) && g.He.push(e);
                a.pc[b.index.toString()] = g
            }
            this.Dc.push(a)
        }
    }
}; (function() {
    function h() {}
    function f() {}
    function d() {}
    var n = G.prototype;
    h.prototype.kt = function() {
        return ! 0
    };
    h.prototype.dp = function() {
        return ! 0
    };
    h.prototype.gu = function() {
        return ! 0
    };
    h.prototype.Zs = function(a, c, d) {
        return ic(a, c, d)
    };
    h.prototype.Lt = function(a) {
        return a ? a.visible: !1
    };
    h.prototype.Kt = function(a, c, d) {
        return a ? ic(100 * a.opacity, c, d) : !1
    };
    h.prototype.mt = function(a, c, d) {
        var e = this.b.bb(),
        f = e.jb,
        e = e.Bq();
        a = this.b.Tr(a);
        if (d < c) if (e) for (; c >= d && !a.Ya; --c) this.b.Cf(f.fa),
        a.index = c,
        f.Ef(),
        this.b.Md(f.fa);
        else for (; c >= d && !a.Ya; --c) a.index = c,
        f.Ef();
        else if (e) for (; c <= d && !a.Ya; ++c) this.b.Cf(f.fa),
        a.index = c,
        f.Ef(),
        this.b.Md(f.fa);
        else for (; c <= d && !a.Ya; ++c) a.index = c,
        f.Ef();
        this.b.Or();
        return ! 1
    };
    var q = [],
    p = -1;
    h.prototype.nt = function(a) {
        var c = a.U();
        p++;
        q.length === p && q.push([]);
        var d = q[p];
        Ca(d, c.vc());
        var e = this.b.bb(),
        f = e.jb,
        l = e.Bq(),
        e = this.b.Tr(),
        h,
        n,
        r,
        m,
        u,
        I,
        T = a.nc;
        if (l) for (l = 0, h = d.length; l < h && !e.Ya; l++) {
            this.b.Cf(f.fa);
            m = d[l];
            c = a.U();
            c.ea = !1;
            A(c.d);
            c.d[0] = m;
            if (T) for (n = 0, r = m.siblings.length; n < r; n++) u = m.siblings[n],
            I = u.type.U(),
            I.ea = !1,
            A(I.d),
            I.d[0] = u;
            e.index = l;
            f.Ef();
            this.b.Md(f.fa)
        } else for (c.ea = !1, A(c.d), l = 0, h = d.length; l < h && !e.Ya; l++) {
            m = d[l];
            c.d[0] = m;
            if (T) for (n = 0, r = m.siblings.length; n < r; n++) u = m.siblings[n],
            I = u.type.U(),
            I.ea = !1,
            A(I.d),
            I.d[0] = u;
            e.index = l;
            f.Ef()
        }
        A(d);
        this.b.Or();
        p--;
        return ! 1
    };
    h.prototype.gv = function() {
        var a = this.b.Ak().xa;
        "undefined" === typeof a.TriggerOnce_lastTick && (a.TriggerOnce_lastTick = -1);
        var c = a.TriggerOnce_lastTick,
        d = this.b.Cg;
        a.TriggerOnce_lastTick = d;
        return this.b.xn || c !== d - 1
    };
    h.prototype.et = function(a, c, d) {
        return ic(a.dg(), c, d)
    };
    h.prototype.yt = function(a) {
        return (a = this.b.xi[a.toLowerCase()]) && a.Wg
    };
    h.prototype.Uo = function() {
        var a = this.b.bb();
        return a.Km ? !1 : !a.mg
    };
    h.prototype.ep = function() {
        return ! 0
    };
    h.prototype.Xt = function() {
        return ! 0
    };
    h.prototype.fm = function() {
        return ! 0
    };
    h.prototype.ip = function() {
        return ! 0
    };
    h.prototype.hu = function() {
        return ! 0
    };
    h.prototype.Lj = function() {
        return ! 0
    };
    h.prototype.Rs = function(a, c, d) {
        return Pa(D(a), D(d)) <= D(c)
    };
    h.prototype.xt = function(a, c) {
        return Ra(D(a), D(c))
    };
    h.prototype.wt = function(a, c, d) {
        a = Na(a);
        c = Na(c);
        d = Na(d);
        return Ra(d, c) ? Ra(a, c) && !Ra(a, d) : !(!Ra(a, c) && Ra(a, d))
    };
    n.j = new h;
    f.prototype.pt = function(a) {
        this.b.gh || this.b.Uf || (this.b.Uf = a)
    };
    f.prototype.gt = function(a, c, d, e) {
        if (c && a && (c = this.b.fk(a, c, d, e))) {
            this.b.Kd++;
            var f;
            this.b.trigger(Object.getPrototypeOf(a.Ca).j.Rh, c);
            if (c.nc) for (d = 0, e = c.siblings.length; d < e; d++) f = c.siblings[d],
            this.b.trigger(Object.getPrototypeOf(f.type.Ca).j.Rh, f);
            this.b.Kd--;
            a = a.U();
            a.ea = !1;
            A(a.d);
            a.d[0] = c;
            if (c.nc) for (d = 0, e = c.siblings.length; d < e; d++) f = c.siblings[d],
            a = f.type.U(),
            a.ea = !1,
            A(a.d),
            a.d[0] = f
        }
    };
    f.prototype.Qu = function(a, c) {
        a && a.visible !== c && (a.visible = c, this.b.ya = !0)
    };
    f.prototype.Pu = function(a, c) {
        a && (c = Ga(c / 100, 0, 1), a.opacity !== c && (a.opacity = c, this.b.ya = !0))
    };
    f.prototype.Yu = function(a, c) {
        0 === a.Fj ? ja(c) ? a.Te(c) : a.Te(parseFloat(c)) : 1 === a.Fj && a.Te(c.toString())
    };
    f.prototype.Ps = function(a, c) {
        0 === a.Fj ? ja(c) ? a.Te(a.dg() + c) : a.Te(a.dg() + parseFloat(c)) : 1 === a.Fj && a.Te(a.dg() + c.toString())
    };
    f.prototype.cv = function(a, c) {
        0 === a.Fj && (ja(c) ? a.Te(a.dg() - c) : a.Te(a.dg() - parseFloat(c)))
    };
    var r = [],
    a = [];
    f.prototype.lv = function(b) {
        if (! (0 > b)) {
            var c, d, e, f = this.b.bb(),
            l;
            r.length ? l = r.pop() : l = {
                pc: {},
                fa: []
            };
            l.Hm = !1;
            l.time = this.b.Vb.na + b;
            l.ps = "";
            l.vo = !1;
            l.Qg = f.jb;
            l.Ec = f.Ec + 1;
            b = 0;
            for (c = this.b.F.length; b < c; b++) e = this.b.F[b],
            d = e.U(),
            d.ea && -1 === f.jb.fa.indexOf(e) || (l.fa.push(e), e = void 0, a.length ? e = a.pop() : e = {
                He: []
            },
            e.Bl = !1, e.Bl = d.ea, Ca(e.He, d.d), l.pc[b.toString()] = e);
            this.Dc.push(l);
            return ! 0
        }
    };
    f.prototype.Au = function() {
        var a, c, d;
        a = 0;
        for (c = this.b.nm.length; a < c; a++) d = this.b.nm[a],
        d.data = d.Hk
    };
    f.prototype.Bu = function() {
        if (!this.b.gh && !this.b.Uf && this.b.ma) {
            this.b.Uf = this.b.ma;
            var a, c, d;
            a = 0;
            for (c = this.b.ff.length; a < c; a++) d = this.b.ff[a],
            d.ds(d.Ik)
        }
    };
    n.u = new f;
    d.prototype["int"] = function(a, c) {
        la(c) ? (a.P(parseInt(c, 10)), isNaN(a.data) && (a.data = 0)) : a.P(c)
    };
    d.prototype["float"] = function(a, c) {
        la(c) ? (a.G(parseFloat(c)), isNaN(a.data) && (a.data = 0)) : a.G(c)
    };
    d.prototype.wz = function(a, c) {
        la(c) ? a.La(c) : a.La(c.toString())
    };
    d.prototype.random = function(a, c, d) {
        void 0 === d ? a.G(Math.random() * c) : a.G(Math.random() * (d - c) + c)
    };
    d.prototype.sqrt = function(a, c) {
        a.G(Math.sqrt(c))
    };
    d.prototype.abs = function(a, c) {
        a.G(Math.abs(c))
    };
    d.prototype.round = function(a, c) {
        a.P(Math.round(c))
    };
    d.prototype.floor = function(a, c) {
        a.P(Math.floor(c))
    };
    d.prototype.ceil = function(a, c) {
        a.P(Math.ceil(c))
    };
    d.prototype.sin = function(a, c) {
        a.G(Math.sin(D(c)))
    };
    d.prototype.cos = function(a, c) {
        a.G(Math.cos(D(c)))
    };
    d.prototype.tan = function(a, c) {
        a.G(Math.tan(D(c)))
    };
    d.prototype.asin = function(a, c) {
        a.G(Ha(Math.asin(c)))
    };
    d.prototype.acos = function(a, c) {
        a.G(Ha(Math.acos(c)))
    };
    d.prototype.atan = function(a, c) {
        a.G(Ha(Math.atan(c)))
    };
    d.prototype.exp = function(a, c) {
        a.G(Math.exp(c))
    };
    d.prototype.log10 = function(a, c) {
        a.G(Math.log(c) / Math.LN10)
    };
    d.prototype.max = function(a) {
        var c = arguments[1];
        "number" !== typeof c && (c = 0);
        var d, e, f;
        d = 2;
        for (e = arguments.length; d < e; d++) f = arguments[d],
        "number" === typeof f && c < f && (c = f);
        a.G(c)
    };
    d.prototype.min = function(a) {
        var c = arguments[1];
        "number" !== typeof c && (c = 0);
        var d, e, f;
        d = 2;
        for (e = arguments.length; d < e; d++) f = arguments[d],
        "number" === typeof f && c > f && (c = f);
        a.G(c)
    };
    d.prototype.pf = function(a) {
        a.G(this.b.pf)
    };
    d.prototype.Lh = function(a) {
        a.G(this.b.Lh)
    };
    d.prototype.time = function(a) {
        a.G(this.b.Vb.na)
    };
    d.prototype.Cg = function(a) {
        a.P(this.b.Cg)
    };
    d.prototype.fl = function(a) {
        a.P(this.b.fl)
    };
    d.prototype.Qm = function(a) {
        a.P(this.b.Qm)
    };
    d.prototype.my = function(a, c) {
        var d, e;
        if (this.b.Zi.length) if (c) {
            for (e = this.b.$i; 0 <= e; --e) if (d = this.b.Zi[e], d.name === c) {
                a.P(d.index);
                return
            }
            a.P(0)
        } else d = this.b.jq(),
        a.P(d ? d.index: -1);
        else a.P(0)
    };
    d.prototype.k = function(a, c, d, e, f) {
        a.G(Ha(Oa(c, d, e, f)))
    };
    d.prototype.Jz = function(a, c) {
        a.La(la(c) ? c.toUpperCase() : "")
    };
    d.prototype.ey = function(a, c) {
        var d = this.b.ix(c);
        d ? a.G(100 * d.opacity) : a.G(0)
    };
    d.prototype.hy = function(a) {
        a.P(this.b.ma.width)
    };
    d.prototype.fy = function(a) {
        a.P(this.b.ma.height)
    };
    d.prototype.find = function(a, c, d) {
        la(c) && la(d) ? a.P(c.search(new RegExp(db(d), "i"))) : a.P( - 1)
    };
    d.prototype.left = function(a, c, d) {
        a.La(la(c) ? c.substr(0, d) : "")
    };
    d.prototype.right = function(a, c, d) {
        a.La(la(c) ? c.substr(c.length - d) : "")
    };
    d.prototype.Dz = function(a, c, d, e) {
        la(c) && la(e) ? (c = c.split(e), d = sa(d), 0 > d || d >= c.length ? a.La("") : a.La(c[d])) : a.La("")
    };
    d.prototype.Ez = function(a, c, d) {
        la(c) && c.length ? a.P(c.split(d).length) : a.P(0)
    };
    d.prototype.replace = function(a, c, d, e) {
        la(c) && la(d) && la(e) ? a.La(c.replace(new RegExp(db(d), "gi"), e)) : a.La(la(c) ? c: "")
    };
    d.prototype.trim = function(a, c) {
        a.La(la(c) ? c.trim() : "")
    };
    d.prototype.gy = function(a) {
        this.b.ma ? a.La(this.b.ma.name) : a.La("")
    };
    d.prototype.Lp = function(a) {
        var c = sa(Math.random() * (arguments.length - 1));
        a.rj(arguments[c + 1])
    };
    d.prototype.Qz = function(a, c, d) {
        var e = 0 > c ? "-": "";
        0 > c && (c = -c);
        d = d - c.toString().length;
        for (var f = 0; f < d; f++) e += "0";
        a.La(e + c.toString())
    };
    d.prototype.Cm = function(a) {
        a.G(this.b.Cm / 1E3)
    };
    d.prototype.Zk = function(a) {
        a.G(this.b.Zk)
    };
    n.I = new d;
    n.cz = function() {
        var b, c, d, e, f, l, h = this.b.bb();
        b = 0;
        for (d = this.Dc.length; b < d; b++) {
            e = this.Dc[b];
            if ( - 1 === e.time) {
                if (!e.vo) continue
            } else if (e.time > this.b.Vb.na) continue;
            h.jb = e.Qg;
            h.Ec = e.Ec;
            h.ib = 0;
            for (c in e.pc) e.pc.hasOwnProperty(c) && (f = this.b.F[parseInt(c, 10)].U(), l = e.pc[c], f.ea = l.Bl, Ca(f.d, l.He), f = l, A(f.He), a.push(f));
            e.Qg.az();
            this.b.zm(e.fa);
            e.Hm = !0
        }
        c = b = 0;
        for (d = this.Dc.length; b < d; b++) e = this.Dc[b],
        this.Dc[c] = e,
        e.Hm ? (Xa(e.pc), A(e.fa), r.push(e)) : c++;
        Aa(this.Dc, c)
    }
})(); (function() {
    pb = function(f, d) {
        var h = f[1],
        q = f[3],
        p = f[4],
        r = f[5],
        a = f[6],
        b = f[7],
        c = f[8];
        d.j || (d.j = {});
        d.u || (d.u = {});
        d.I || (d.I = {});
        var g = d.j,
        e = d.u,
        k = d.I;
        q && (g.ft = function(a, b) {
            return ic(this.x, a, b)
        },
        g.Yz = function(a, b) {
            return ic(this.y, a, b)
        },
        g.At = function() {
            var a = this.q;
            this.Ga();
            var b = this.Ra;
            return ! (b.right < a.Ea || b.bottom < a.Fa || b.left > a.Ia || b.top > a.Ha)
        },
        g.Bt = function() {
            this.Ga();
            var a = this.Ra,
            b = this.b.ma;
            return 0 > a.right || 0 > a.bottom || a.left > b.width || a.top > b.height
        },
        g.iA = function(a, b, c) {
            var d = this.U(),
            e = d.vc();
            if (!e.length) return ! 1;
            var g = e[0],
            f = g,
            h = Ta(g.x, g.y, b, c),
            k,
            n,
            q;
            k = 1;
            for (n = e.length; k < n; k++) if (g = e[k], q = Ta(g.x, g.y, b, c), 0 === a && q < h || 1 === a && q > h) h = q,
            f = g;
            d.gj(f);
            return ! 0
        },
        e.$u = function(a) {
            this.x !== a && (this.x = a, this.Y())
        },
        e.FA = function(a) {
            this.y !== a && (this.y = a, this.Y())
        },
        e.np = function(a, b) {
            if (this.x !== a || this.y !== b) this.x = a,
            this.y = b,
            this.Y()
        },
        e.Uu = function(a, b) {
            var c = a.kx(this);
            if (c) {
                var d;
                c.ri ? (d = c.ri(b, !0), c = c.ri(b, !1)) : (d = c.x, c = c.y);
                if (this.x !== d || this.y !== c) this.x = d,
                this.y = c,
                this.Y()
            }
        },
        e.eA = function(a) {
            0 !== a && (this.x += Math.cos(this.k) * a, this.y += Math.sin(this.k) * a, this.Y())
        },
        e.Ot = function(a, b) {
            0 !== b && (this.x += Math.cos(D(a)) * b, this.y += Math.sin(D(a)) * b, this.Y())
        },
        k.sp = function(a) {
            a.G(this.x)
        },
        k.tp = function(a) {
            a.G(this.y)
        },
        k.pf = function(a) {
            a.G(this.b.qi(this))
        });
        p && (g.Xz = function(a, b) {
            return ic(this.width, a, b)
        },
        g.Wz = function(a, b) {
            return ic(this.height, a, b)
        },
        e.EA = function(a) {
            this.width !== a && (this.width = a, this.Y())
        },
        e.yA = function(a) {
            this.height !== a && (this.height = a, this.Y())
        },
        e.pp = function(a, b) {
            if (this.width !== a || this.height !== b) this.width = a,
            this.height = b,
            this.Y()
        },
        k.nv = function(a) {
            a.G(this.width)
        },
        k.Vo = function(a) {
            a.G(this.height)
        },
        k.Tz = function(a) {
            this.Ga();
            a.G(this.Ra.left)
        },
        k.Vz = function(a) {
            this.Ga();
            a.G(this.Ra.top)
        },
        k.Uz = function(a) {
            this.Ga();
            a.G(this.Ra.right)
        },
        k.Sz = function(a) {
            this.Ga();
            a.G(this.Ra.bottom)
        });
        r && (g.Rs = function(a, b) {
            return Pa(this.k, D(b)) <= D(a)
        },
        g.xt = function(a) {
            return Ra(this.k, D(a))
        },
        g.wt = function(a, b) {
            var c = Na(a),
            d = Na(b),
            e = La(this.k);
            return Ra(d, c) ? Ra(e, c) && !Ra(e, d) : !(!Ra(e, c) && Ra(e, d))
        },
        e.Eu = function(a) {
            a = D(Ja(a));
            isNaN(a) || this.k === a || (this.k = a, this.Y())
        },
        e.pA = function(a) {
            0 === a || isNaN(a) || (this.k += D(a), this.k = La(this.k), this.Y())
        },
        e.qA = function(a) {
            0 === a || isNaN(a) || (this.k -= D(a), this.k = La(this.k), this.Y())
        },
        e.rA = function(a, b) {
            var c = Qa(this.k, D(b), D(a));
            isNaN(c) || this.k === c || (this.k = c, this.Y())
        },
        e.sA = function(a, b, c) {
            a = Qa(this.k, Math.atan2(c - this.y, b - this.x), D(a));
            isNaN(a) || this.k === a || (this.k = a, this.Y())
        },
        e.BA = function(a, b) {
            var c = Math.atan2(b - this.y, a - this.x);
            isNaN(c) || this.k === c || (this.k = c, this.Y())
        },
        k.Qs = function(a) {
            a.G(Ma(this.k))
        });
        h || (g.To = function(a, b, c) {
            return ic(this.yb[a], b, c)
        },
        g.aA = function(a) {
            return this.yb[a]
        },
        g.jA = function(a, b) {
            var c = this.U(),
            d = c.vc();
            if (!d.length) return ! 1;
            var e = d[0],
            g = e,
            f = e.yb[b],
            h,
            k,
            n;
            h = 1;
            for (k = d.length; h < k; h++) if (e = d[h], n = e.yb[b], 0 === a && n < f || 1 === a && n > f) f = n,
            g = e;
            c.gj(g);
            return ! 0
        },
        g.xu = function(a) {
            var b, c, d, e, g;
            if (this.b.Ak().Jk) {
                g = this.U();
                if (g.ea) for (g.ea = !1, A(g.d), A(g.ca), d = this.d, b = 0, c = d.length; b < c; b++) e = d[b],
                e.uid === a ? g.ca.push(e) : g.d.push(e);
                else {
                    d = b = 0;
                    for (c = g.d.length; b < c; b++) e = g.d[b],
                    g.d[d] = e,
                    e.uid === a ? g.ca.push(e) : d++;
                    Aa(g.d, d)
                }
                this.dd();
                return !! g.d.length
            }
            e = this.b.si(a);
            if (!e) return ! 1;
            g = this.U();
            if (!g.ea && -1 === g.d.indexOf(e)) return ! 1;
            if (this.T) for (a = e.type.Na, b = 0, c = a.length; b < c; b++) {
                if (a[b] === this) return g.gj(e),
                this.dd(),
                !0
            } else if (e.type === this) return g.gj(e),
            this.dd(),
            !0;
            return ! 1
        },
        g.Rh = function() {
            return ! 0
        },
        g.Yo = function() {
            return ! 0
        },
        e.Nu = function(a, b) {
            var c = this.yb;
            ja(c[a]) ? c[a] = ja(b) ? b: parseFloat(b) : la(c[a]) && (c[a] = la(b) ? b: b.toString())
        },
        e.Rz = function(a, b) {
            var c = this.yb;
            ja(c[a]) ? c[a] = ja(b) ? c[a] + b: c[a] + parseFloat(b) : la(c[a]) && (c[a] = la(b) ? c[a] + b: c[a] + b.toString())
        },
        e.HA = function(a, b) {
            var c = this.yb;
            ja(c[a]) && (c[a] = ja(b) ? c[a] - b: c[a] - parseFloat(b))
        },
        e.tA = function(a, b) {
            this.yb[a] = b ? 1 : 0
        },
        e.JA = function(a) {
            this.yb[a] = 1 - this.yb[a]
        },
        e.ht = function() {
            this.b.Kf(this)
        },
        e.Nt || (e.Nt = function(a) {
            var b, c;
            try {
                b = JSON.parse(a)
            } catch(d) {
                return
            }
            this.b.Wk(this, b, !0);
            this.qe && this.qe();
            if (this.Z) for (a = 0, b = this.Z.length; a < b; ++a) c = this.Z[a],
            c.qe && c.qe()
        }), k.Zz = function(a) {
            var b = a.wg.d.length,
            c, d, e;
            c = 0;
            for (d = this.b.Hd.length; c < d; c++) e = this.b.Hd[c],
            a.wg.T ? 0 <= e.type.Na.indexOf(a.wg) && b++:e.type === a.wg && b++;
            a.P(b)
        },
        k.kA = function(a) {
            a.P(a.wg.U().vc().length)
        },
        k.hv = function(a) {
            a.P(this.uid)
        },
        k.$z = function(a) {
            a.P(this.vi())
        },
        k.So || (k.So = function(a) {
            a.La(JSON.stringify(this.b.po(this, !0)))
        }));
        a && (g.Gt = function() {
            return this.visible
        },
        e.Zu = function(a) { ! a !== !this.visible && (this.visible = !!a, this.b.ya = !0)
        },
        g.bt = function(a, b) {
            return ic(lb(100 * this.opacity), a, b)
        },
        e.mp = function(a) {
            a = a / 100;
            0 > a ? a = 0 : 1 < a && (a = 1);
            a !== this.opacity && (this.opacity = a, this.b.ya = !0)
        },
        k.Opacity = function(a) {
            a.G(lb(100 * this.opacity))
        });
        b && (g.zt = function(a) {
            return a ? this.q === a: !1
        },
        g.yu = function(a) {
            var b = this.U(),
            c = b.vc();
            if (!c.length) return ! 1;
            var d = c[0],
            e = d,
            g,
            f;
            g = 1;
            for (f = c.length; g < f; g++) if (d = c[g], 0 === a) {
                if (d.q.index > e.q.index || d.q.index === e.q.index && d.$d() > e.$d()) e = d
            } else if (d.q.index < e.q.index || d.q.index === e.q.index && d.$d() < e.$d()) e = d;
            b.gj(e);
            return ! 0
        },
        e.Qt = function() {
            var a = this.q,
            b = a.d;
            b.length && b[b.length - 1] === this || (a.yh(this, !1), a.Xh(this, !1), this.b.ya = !0)
        },
        e.Pt = function() {
            var a = this.q,
            b = a.d;
            b.length && b[0] === this || (a.yh(this, !1), a.Ly(this), this.b.ya = !0)
        },
        e.Xo = function(a) {
            a && a != this.q && (this.q.yh(this, !0), this.q = a, a.Xh(this, !0), this.b.ya = !0)
        },
        e.MA = function(a, b) {
            var c = 0 === a;
            if (b) {
                var d = b.lq(this);
                d && d.uid !== this.uid && (this.q.index !== d.q.index && (this.q.yh(this, !0), this.q = d.q, d.q.Xh(this, !0)), this.q.ry(this, d, c), this.b.ya = !0)
            }
        },
        k.dA = function(a) {
            a.P(this.q.qr)
        },
        k.cA = function(a) {
            a.La(this.q.name)
        },
        k.LA = function(a) {
            a.P(this.$d())
        });
        c && (e.wA = function(a, b) {
            if (this.b.J) {
                var c = this.type.Wm(b);
                if (! (0 > c)) {
                    var d = 1 === a;
                    this.df[c] !== d && (this.df[c] = d, this.Rd(), this.b.ya = !0)
                }
            }
        },
        e.lp = function(a, b, c) {
            if (this.b.J) {
                var d = this.type.Wm(a);
                0 > d || (a = this.type.S[d], d = this.Ua[d], b = Math.floor(b), 0 > b || b >= d.length || (1 === this.b.J.qx(a.rb, b) && (c /= 100), d[b] !== c && (d[b] = c, a.Qa && (this.b.ya = !0))))
            }
        })
    };
    Kb = function() {
        this.wm = this.rm = !0;
        this.type.Qj = !0;
        this.b.ya = !0;
        var f, d, h = this.tm;
        f = 0;
        for (d = h.length; f < d; ++f) h[f](this);
        this.q.cd && this.Ga()
    };
    Lb = function(f) {
        f && this.tm.push(f)
    };
    Nb = function() {
        if (this.rm) {
            var f = this.Ra,
            d = this.Oc;
            f.set(this.x, this.y, this.x + this.width, this.y + this.height);
            f.offset( - this.wc * this.width, -this.xc * this.height);
            this.k ? (f.offset( - this.x, -this.y), d.ks(f, this.k), d.offset(this.x, this.y), d.Fp(f)) : d.sj(f);
            f.normalize();
            this.rm = !1;
            this.Iz()
        }
    };
    var h = new wa(0, 0, 0, 0);
    Ob = function() {
        if (this.q.cd) {
            var f = this.q.Yb,
            d = this.Ra;
            h.set(f.rc(d.left), f.sc(d.top), f.rc(d.right), f.sc(d.bottom));
            this.yc.gi(h) || (this.yc.right < this.yc.left ? f.update(this, null, h) : f.update(this, this.yc, h), this.yc.Mg(h), this.q.Od = !0)
        }
    };
    Pb = function() {
        if (this.wm && this.ve) {
            this.Ga();
            var f = this.type.ck,
            d = this.Ra;
            h.set(f.rc(d.left), f.sc(d.top), f.rc(d.right), f.sc(d.bottom));
            this.mf.gi(h) || (this.mf.right < this.mf.left ? f.update(this, null, h) : f.update(this, this.mf, h), this.mf.Mg(h), this.wm = !1)
        }
    };
    Mb = function(f, d) {
        return this.Ra.fc(f, d) && this.Oc.fc(f, d) ? this.Kh ? this.gB(f, d) : this.Aa && !this.Aa.$g() ? (this.Aa.Jg(this.width, this.height, this.k), this.Aa.fc(f - this.x, d - this.y)) : !0 : !1
    };
    Gb = function() {
        this.type.Wl();
        return this.gg
    };
    Qb = function() {
        this.q.Mo();
        return this.Td
    };
    Rb = function() {
        A(this.wa);
        var f, d, h, q = !0;
        f = 0;
        for (d = this.df.length; f < d; f++) this.df[f] && (h = this.type.S[f], this.wa.push(h), h.Zc || (q = !1));
        this.Ks = !!this.wa.length;
        this.Ue = q
    };
    Hb = function() {
        return "Inst" + this.Sr
    };
    sb = function(f) {
        if (f && f.nc && f.type != this) {
            var d, h, q;
            d = 0;
            for (h = f.siblings.length; d < h; d++) if (q = f.siblings[d], q.type == this) return q
        }
        f = this.U().vc();
        return f.length ? f[0] : null
    };
    tb = function(f) {
        var d = this.U().vc();
        return d.length ? d[f.vi() % d.length] : null
    };
    rb = function() {
        if (this.Fh && !this.T) {
            var f, d;
            f = 0;
            for (d = this.d.length; f < d; f++) this.d[f].gg = f;
            var h = f,
            q = this.b.Hd;
            f = 0;
            for (d = q.length; f < d; ++f) q[f].type === this && (q[f].gg = h++);
            this.Fh = !1
        }
    };
    Eb = function(f) {
        if (f < this.d.length) return this.d[f];
        f -= this.d.length;
        var d = this.b.Hd,
        h, q;
        h = 0;
        for (q = d.length; h < q; ++h) if (d[h].type === this) {
            if (0 === f) return d[h]; --f
        }
        return null
    };
    ub = function() {
        return this.We[this.Xd]
    };
    vb = function() {
        this.Xd++;
        this.Xd === this.We.length ? this.We.push(new qb(this)) : (this.We[this.Xd].ea = !0, A(this.We[this.Xd].ca))
    };
    wb = function() {
        this.Xd++;
        this.Xd === this.We.length && this.We.push(new qb(this));
        var f = this.We[this.Xd],
        d = this.We[this.Xd - 1];
        d.ea ? f.ea = !0 : (f.ea = !1, Ca(f.d, d.d));
        A(f.ca)
    };
    xb = function() {
        this.Xd--
    };
    yb = function(f) {
        var d, h, q, p, r, a = 0;
        if (!this.T) for (d = 0, h = this.Na.length; d < h; d++) for (r = this.Na[d], q = 0, p = r.Sa.length; q < p; q++) {
            if (f === r.Sa[q].name) return this.xa.lastBehIndex = a,
            r.Sa[q];
            a++
        }
        d = 0;
        for (h = this.Sa.length; d < h; d++) {
            if (f === this.Sa[d].name) return this.xa.lastBehIndex = a,
            this.Sa[d];
            a++
        }
        return null
    };
    zb = function(f) {
        return this.zk(f) ? this.xa.lastBehIndex: -1
    };
    Ab = function(f) {
        var d, h;
        d = 0;
        for (h = this.S.length; d < h; d++) if (this.S[d].name === f) return d;
        return - 1
    };
    Db = function() {
        if (this.nc && !this.T) {
            var f, d, h, q, p, r, a;
            this.Wl();
            r = this.U();
            var b = r.ea,
            c = (f = this.b.bb()) && f.jb && f.jb.Yc;
            f = 0;
            for (d = this.Gc.length; f < d; f++) if (p = this.Gc[f], p !== this && (p.Wl(), a = p.U(), a.ea = b, !b)) {
                A(a.d);
                h = 0;
                for (q = r.d.length; h < q; ++h) a.d[h] = p.Xm(r.d[h].gg);
                if (c) for (A(a.ca), h = 0, q = r.ca.length; h < q; ++h) a.ca[h] = p.Xm(r.ca[h].gg)
            }
        }
    };
    Fb = function() {
        return "Type" + this.ga
    };
    ic = function(f, d, h) {
        if ("undefined" === typeof f || "undefined" === typeof h) return ! 1;
        switch (d) {
        case 0:
            return f === h;
        case 1:
            return f !== h;
        case 2:
            return f < h;
        case 3:
            return f <= h;
        case 4:
            return f > h;
        case 5:
            return f >= h;
        default:
            return ! 1
        }
    }
})();
var qc = {
    blacknwhite: {
        src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nuniform lowp float threshold;\nvoid main(void)\n{\nlowp vec4 front = texture2D(samplerFront, vTex);\nlowp float gray = front.r * 0.299 + front.g * 0.587 + front.b * 0.114;\nif (gray < threshold)\ngl_FragColor = vec4(0.0, 0.0, 0.0, front.a);\nelse\ngl_FragColor = vec4(front.a, front.a, front.a, front.a);\n}",
        ji: 0,
        ki: 0,
        gk: !1,
        Zc: !0,
        Pj: !1,
        X: [["threshold", 0, 1]]
    },
    setcolor: {
        src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nuniform lowp float red;\nuniform lowp float green;\nuniform lowp float blue;\nvoid main(void)\n{\nlowp float a = texture2D(samplerFront, vTex).a;\ngl_FragColor = vec4(red * a, green * a, blue * a, a);\n}",
        ji: 0,
        ki: 0,
        gk: !1,
        Zc: !0,
        Pj: !1,
        X: [["red", 0, 1], ["green", 0, 1], ["blue", 0, 1]]
    }
};
function tc(h) {
    this.b = h
} (function() {
    function h() {
        return a.length ? a.pop() : []
    }
    function f(b) {
        var c, d;
        c = 0;
        for (d = b.length; c < d; c++) Array.isArray(b[c]) && f(b[c]);
        A(b);
        a.push(b)
    }
    function d() {}
    function n() {}
    function q() {}
    var p = tc.prototype;
    p.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    p.za.prototype.O = function() {};
    p.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    var r = p.ja.prototype,
    a = [];
    Array.isArray || (Array.isArray = function(a) {
        return "[object Array]" === Object.prototype.toString.call(a)
    });
    r.O = function() {
        this.mc = this.C[0];
        this.Hc = this.C[1];
        this.hd = this.C[2];
        this.$c || (this.Dd = h());
        var a = this.Dd;
        a.length = this.mc;
        var c, d, e;
        for (c = 0; c < this.mc; c++) for (a[c] || (a[c] = h()), a[c].length = this.Hc, d = 0; d < this.Hc; d++) for (a[c][d] || (a[c][d] = h()), a[c][d].length = this.hd, e = 0; e < this.hd; e++) a[c][d][e] = 0;
        this.bq = [];
        this.cq = [];
        this.dq = [];
        this.Ee = -1
    };
    r.xg = function() {
        var a;
        for (a = 0; a < this.mc; a++) f(this.Dd[a]);
        A(this.Dd)
    };
    r.Ed = function(a, c, d) {
        a = Math.floor(a);
        c = Math.floor(c);
        d = Math.floor(d);
        return isNaN(a) || 0 > a || a > this.mc - 1 || isNaN(c) || 0 > c || c > this.Hc - 1 || isNaN(d) || 0 > d || d > this.hd - 1 ? 0 : this.Dd[a][c][d]
    };
    r.set = function(a, c, d, e) {
        a = Math.floor(a);
        c = Math.floor(c);
        d = Math.floor(d);
        isNaN(a) || 0 > a || a > this.mc - 1 || isNaN(c) || 0 > c || c > this.Hc - 1 || isNaN(d) || 0 > d || d > this.hd - 1 || (this.Dd[a][c][d] = e)
    };
    r.ax = function() {
        return JSON.stringify({
            c2array: !0,
            size: [this.mc, this.Hc, this.hd],
            data: this.Dd
        })
    };
    r.Lb = function() {
        return {
            size: [this.mc, this.Hc, this.hd],
            data: this.Dd
        }
    };
    r.kc = function(a) {
        var c = a.size;
        this.mc = c[0];
        this.Hc = c[1];
        this.hd = c[2];
        this.Dd = a.data
    };
    r.Se = function(a, c, d) {
        0 > a && (a = 0);
        0 > c && (c = 0);
        0 > d && (d = 0);
        if (this.mc !== a || this.Hc !== c || this.hd !== d) {
            this.mc = a;
            this.Hc = c;
            this.hd = d;
            var e, f, l = this.Dd;
            l.length = a;
            for (a = 0; a < this.mc; a++) for (ia(l[a]) && (l[a] = h()), l[a].length = c, e = 0; e < this.Hc; e++) for (ia(l[a][e]) && (l[a][e] = h()), l[a][e].length = d, f = 0; f < this.hd; f++) ia(l[a][e][f]) && (l[a][e][f] = 0)
        }
    };
    r.ei = function() {
        return 0 <= this.Ee && this.Ee < this.bq.length ? this.bq[this.Ee] : 0
    };
    r.Oi = function() {
        return 0 <= this.Ee && this.Ee < this.cq.length ? this.cq[this.Ee] : 0
    };
    r.UA = function() {
        return 0 <= this.Ee && this.Ee < this.dq.length ? this.dq[this.Ee] : 0
    };
    d.prototype.ft = function(a, c, d) {
        return ic(this.Ed(a, 0, 0), c, d)
    };
    r.te = function(a) {
        this.b.Cf(a.fa);
        a.Ef();
        this.b.Md(a.fa)
    };
    p.j = new d;
    n.prototype.pp = function(a, c, d) {
        this.Se(a, c, d)
    };
    n.prototype.$u = function(a, c) {
        this.set(a, 0, 0, c)
    };
    n.prototype.Cu = function(a) {
        var c = 0,
        d = 0,
        e = this.Dd;
        if (0 !== this.mc && 0 !== this.Hc && 0 !== this.hd) switch (a) {
        case 0:
            e.reverse();
            break;
        case 1:
            for (; c < this.mc; c++) e[c].reverse();
            break;
        case 2:
            for (; c < this.mc; c++) for (d = 0; d < this.Hc; d++) e[c][d].reverse()
        }
    };
    n.prototype.Jt = function(a) {
        var c;
        try {
            c = JSON.parse(a)
        } catch(d) {
            return
        }
        c.c2array && (a = c.size, this.mc = a[0], this.Hc = a[1], this.hd = a[2], this.Dd = c.data)
    };
    p.u = new n;
    q.prototype.Ts = function(a, c, d, e) {
        a.rj(this.Ed(c, d || 0, e || 0))
    };
    q.prototype.nv = function(a) {
        a.P(this.mc)
    };
    q.prototype.Vo = function(a) {
        a.P(this.Hc)
    };
    q.prototype.So = function(a) {
        a.La(this.ax())
    };
    p.I = new q
})();
function uc(h) {
    this.b = h
} (function() {
    function h(a) { - 1 === Bb.indexOf(a) && Bb.push(a)
    }
    function f(a) {
        var b = a.n,
        c;
        try {
            c = b.play()
        } catch(d) {
            h(a);
            return
        }
        c ? c.
        catch(function() {
            h(a)
        }) : Sc && !N.Je && h(a)
    }
    function d() {
        var a, b, c, d;
        Tc || Sb || !y || (n(), "running" === y.state && (Tc = !0));
        var e = Bb.slice(0);
        A(Bb);
        if (!ka) for (a = 0, b = e.length; a < b; ++a) c = e[a],
        c.Ya || c.Ic || (d = c.n.play()) && d.
        catch(function() {
            h(c)
        })
    }
    function n() {
        "suspended" === y.state && y.resume && y.resume();
        if (y.createBuffer) {
            var a = y.createBuffer(1, 220, 22050),
            c = y.createBufferSource();
            c.buffer = a;
            c.connect(y.destination);
            b(c)
        }
    }
    function q(a) {
        0 > a && (a = 0);
        1 < a && (a = 1);
        return Math.log(a) / Math.log(10) * 20
    }
    function p(a) {
        a = a.toLowerCase();
        return fa.hasOwnProperty(a) && fa[a].length ? fa[a][0].Tc() : y.destination
    }
    function r() {
        return y.createGain ? y.createGain() : y.createGainNode()
    }
    function a(a) {
        return y.createDelay ? y.createDelay(a) : y.createDelayNode(a)
    }
    function b(a, b) {
        a.start ? a.start(b || 0) : a.noteOn(b || 0)
    }
    function c(a, b, c, d) {
        a.start ? a.start(d || 0, b) : a.noteGrainOn(d || 0, b, c - b)
    }
    function g(a) {
        try {
            a.stop ? a.stop(0) : a.noteOff(0)
        } catch(b) {}
    }
    function e(a, b, c, d, e, g) {
        this.type = "filter";
        this.eb = [a, b, c, d, e, g];
        this.la = r();
        this.R = r();
        this.R.gain.value = g;
        this.N = r();
        this.N.gain.value = 1 - g;
        this.lb = y.createBiquadFilter();
        this.lb.type = "number" === typeof this.lb.type ? a: fd[a];
        this.lb.frequency.value = b;
        this.lb.detune && (this.lb.detune.value = c);
        this.lb.Q.value = d;
        this.lb.gain.value = e;
        this.la.connect(this.lb);
        this.la.connect(this.N);
        this.lb.connect(this.R)
    }
    function k(b, c, d) {
        this.type = "delay";
        this.eb = [b, c, d];
        this.la = r();
        this.R = r();
        this.R.gain.value = d;
        this.N = r();
        this.N.gain.value = 1 - d;
        this.aj = r();
        this.kd = a(b);
        this.kd.delayTime.value = b;
        this.mk = r();
        this.mk.gain.value = c;
        this.la.connect(this.aj);
        this.la.connect(this.N);
        this.aj.connect(this.R);
        this.aj.connect(this.kd);
        this.kd.connect(this.mk);
        this.mk.connect(this.aj)
    }
    function l(a, b, c, d) {
        this.type = "convolve";
        this.eb = [b, c, d];
        this.la = r();
        this.R = r();
        this.R.gain.value = c;
        this.N = r();
        this.N.gain.value = 1 - c;
        this.Vf = y.createConvolver();
        a && (this.Vf.normalize = b, this.Vf.buffer = a);
        this.la.connect(this.Vf);
        this.la.connect(this.N);
        this.Vf.connect(this.R)
    }
    function w(c, d, e, g, f) {
        this.type = "flanger";
        this.eb = [c, d, e, g, f];
        this.la = r();
        this.N = r();
        this.N.gain.value = 1 - f / 2;
        this.R = r();
        this.R.gain.value = f / 2;
        this.tk = r();
        this.tk.gain.value = g;
        this.kd = a(c + d);
        this.kd.delayTime.value = c;
        this.Kb = y.createOscillator();
        this.Kb.frequency.value = e;
        this.Lc = r();
        this.Lc.gain.value = d;
        this.la.connect(this.kd);
        this.la.connect(this.N);
        this.kd.connect(this.R);
        this.kd.connect(this.tk);
        this.tk.connect(this.kd);
        this.Kb.connect(this.Lc);
        this.Lc.connect(this.kd.delayTime);
        b(this.Kb)
    }
    function M(a, c, d, e, g, f) {
        this.type = "phaser";
        this.eb = [a, c, d, e, g, f];
        this.la = r();
        this.N = r();
        this.N.gain.value = 1 - f / 2;
        this.R = r();
        this.R.gain.value = f / 2;
        this.lb = y.createBiquadFilter();
        this.lb.type = "number" === typeof this.lb.type ? 7 : "allpass";
        this.lb.frequency.value = a;
        this.lb.detune && (this.lb.detune.value = c);
        this.lb.Q.value = d;
        this.Kb = y.createOscillator();
        this.Kb.frequency.value = g;
        this.Lc = r();
        this.Lc.gain.value = e;
        this.la.connect(this.lb);
        this.la.connect(this.N);
        this.lb.connect(this.R);
        this.Kb.connect(this.Lc);
        this.Lc.connect(this.lb.frequency);
        b(this.Kb)
    }
    function P(a) {
        this.type = "gain";
        this.eb = [a];
        this.ua = r();
        this.ua.gain.value = a
    }
    function m(a, c) {
        this.type = "tremolo";
        this.eb = [a, c];
        this.ua = r();
        this.ua.gain.value = 1 - c / 2;
        this.Kb = y.createOscillator();
        this.Kb.frequency.value = a;
        this.Lc = r();
        this.Lc.gain.value = c / 2;
        this.Kb.connect(this.Lc);
        this.Lc.connect(this.ua.gain);
        b(this.Kb)
    }
    function u(a, c) {
        this.type = "ringmod";
        this.eb = [a, c];
        this.la = r();
        this.R = r();
        this.R.gain.value = c;
        this.N = r();
        this.N.gain.value = 1 - c;
        this.nj = r();
        this.nj.gain.value = 0;
        this.Kb = y.createOscillator();
        this.Kb.frequency.value = a;
        this.Kb.connect(this.nj.gain);
        b(this.Kb);
        this.la.connect(this.nj);
        this.la.connect(this.N);
        this.nj.connect(this.R)
    }
    function I(a, b, c, d, e) {
        this.type = "distortion";
        this.eb = [a, b, c, d, e];
        this.la = r();
        this.tl = r();
        this.sl = r();
        this.jz(c, Math.pow(10, d / 20));
        this.R = r();
        this.R.gain.value = e;
        this.N = r();
        this.N.gain.value = 1 - e;
        this.cm = y.createWaveShaper();
        this.kk = new Float32Array(65536);
        this.Zw(a, b);
        this.cm.kk = this.kk;
        this.la.connect(this.tl);
        this.la.connect(this.N);
        this.tl.connect(this.cm);
        this.cm.connect(this.sl);
        this.sl.connect(this.R)
    }
    function T(a, b, c, d, e) {
        this.type = "compressor";
        this.eb = [a, b, c, d, e];
        this.ua = y.createDynamicsCompressor();
        try {
            this.ua.threshold.value = a,
            this.ua.knee.value = b,
            this.ua.ratio.value = c,
            this.ua.attack.value = d,
            this.ua.release.value = e
        } catch(g) {}
    }
    function v(a, b) {
        this.type = "analyser";
        this.eb = [a, b];
        this.ua = y.createAnalyser();
        this.ua.fftSize = a;
        this.ua.smoothingTimeConstant = b;
        this.Xw = new Float32Array(this.ua.frequencyBinCount);
        this.ns = new Uint8Array(a);
        this.fj = 0
    }
    function H() {
        this.Ba = null;
        this.Yk = 0
    }
    function C(a, b) {
        this.src = a;
        this.da = O;
        this.be = b;
        this.Oj = !1;
        var c = this;
        this.nh = this.uh = null;
        this.wh = [];
        this.Cl = 0;
        this.Po = this.rk = this.ts = this.nl = !1;
        1 === O && b && !Cb && (this.da = 0, this.uh = r());
        this.se = this.ra = null;
        var d;
        switch (this.da) {
        case 0:
            this.ra = new Audio;
            this.ra.crossOrigin = "anonymous";
            this.ra.addEventListener("canplaythrough",
            function() {
                c.Po = !0
            });
            1 === O && y.createMediaElementSource && !/wiiu/i.test(navigator.userAgent) && (this.ts = !0, this.ra.addEventListener("canplay",
            function() { ! c.nh && c.ra && (c.nh = y.createMediaElementSource(c.ra), c.nh.connect(c.uh))
            }));
            this.ra.autoplay = !1;
            this.ra.aB = "auto";
            this.ra.src = a;
            break;
        case 1:
            N.Ok ? N.Zp(a,
            function(a) {
                c.se = a;
                c.Pp()
            },
            function() {
                c.rk = !0
            }) : (d = new XMLHttpRequest, d.open("GET", a, !0), d.responseType = "arraybuffer", d.onload = function() {
                c.se = d.response;
                c.Pp()
            },
            d.onerror = function() {
                c.rk = !0
            },
            d.send());
            break;
        case 2:
            this.ra = !0;
            break;
        case 3:
            this.ra = !0
        }
    }
    function t(a, b) {
        var c = this;
        this.tag = b;
        this.Ya = this.Zd = !0;
        this.src = a.src;
        this.buffer = a;
        this.da = O;
        this.be = a.be;
        this.playbackRate = 1;
        this.Xg = !0;
        this.Ic = this.ad = !1;
        this.zc = 0;
        this.Ki = this.bh = this.de = !1;
        this.volume = 1;
        this.Tn = function(a) {
            if (!c.Ic && !c.ad) {
                var b = this;
                b || (b = a.target);
                b === c.Nj && (c.Xg = !0, c.Ya = !0, z = c.tag, N.trigger(uc.prototype.j.Jj, L))
            }
        };
        this.Nj = null;
        this.Zg = 1 === Y && !this.be || 2 === Y;
        this.oh = 1;
        this.startTime = this.Zg ? N.Vb.na: N.Ze.na;
        this.pb = this.xb = null;
        this.ee = !1;
        this.Wb = null;
        this.Hr = this.Gr = this.Fr = this.Er = this.Jr = this.Ir = 0;
        this.n = null;
        var d = !1;
        1 !== this.da || 0 !== this.buffer.da || this.buffer.ts || (this.da = 0);
        switch (this.da) {
        case 0:
            this.be ? (this.n = a.ra, d = !a.Oj, a.Oj = !0) : (this.n = new Audio, this.n.crossOrigin = "anonymous", this.n.autoplay = !1, this.n.src = a.ra.src, d = !0);
            d && this.n.addEventListener("ended",
            function() {
                z = c.tag;
                c.Ya = !0;
                N.trigger(uc.prototype.j.Jj, L)
            });
            break;
        case 1:
            this.xb = r();
            this.xb.connect(p(b));
            1 === this.buffer.da ? a.ra && (this.n = y.createBufferSource(), this.n.buffer = a.ra, this.n.connect(this.xb)) : (this.n = this.buffer.ra, this.buffer.uh.connect(this.xb), this.buffer.Oj || (this.buffer.Oj = !0, this.buffer.ra.addEventListener("ended",
            function() {
                z = c.tag;
                c.Ya = !0;
                N.trigger(uc.prototype.j.Jj, L)
            })));
            break;
        case 2:
            this.n = new window.Media(x + this.src, null, null,
            function(a) {
                a === window.Media.MEDIA_STOPPED && (c.Xg = !0, c.Ya = !0, z = c.tag, N.trigger(uc.prototype.j.Jj, L))
            });
            break;
        case 3:
            this.n = !0
        }
    }
    function F(a, b) {
        var c = a.ig() ? 1 : 0,
        d = b.ig() ? 1 : 0;
        return c === d ? 0 : c < d ? 1 : -1
    }
    function J(a, b) {
        A(Ka);
        if (a.length) {
            var c, d, e;
            c = 0;
            for (d = E.length; c < d; c++) e = E[c],
            mb(a, e.tag) && Ka.push(e);
            b && Ka.sort(F)
        } else X && !X.fg() && (A(Ka), Ka[0] = X)
    }
    function S(a, b) {
        fa.hasOwnProperty(a) ? fa[a].push(b) : fa[a] = [b];
        var c, d, e, g, f = y.destination;
        if (fa.hasOwnProperty(a) && (e = fa[a], e.length)) for (f = e[0].Tc(), c = 0, d = e.length; c < d; c++) g = e[c],
        c + 1 === d ? g.fd(y.destination) : g.fd(e[c + 1].Tc());
        J(a);
        c = 0;
        for (d = Ka.length; c < d; c++) Ka[c].Ty(f);
        Va && Vb === a && (Va.disconnect(), Va.connect(f))
    }
    function Q() {}
    function B() {}
    function V() {}
    var U = uc.prototype;
    U.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    U.za.prototype.O = function() {};
    var N = null,
    L = null,
    z = "",
    x = "",
    O = 0,
    y = null,
    K = [],
    E = [],
    X = null,
    ua = !1,
    Y = 0,
    ka = !1,
    da = 1,
    Ia = 0,
    Za = 0,
    Sb = !1,
    Tb = 1,
    Ub = 1,
    Rc = 10,
    Uc = 1E4,
    Vc = 1,
    Va = null,
    Vb = "",
    Sc = !1,
    Bb = [],
    Cb = !1,
    Tc = !1;
    document.addEventListener("pointerup", d, !0);
    document.addEventListener("touchend", d, !0);
    document.addEventListener("click", d, !0);
    document.addEventListener("keydown", d, !0);
    document.addEventListener("gamepadconnected", d, !0);
    var fa = {},
    fd = "lowpass highpass bandpass lowshelf highshelf peaking notch allpass".split(" ");
    e.prototype.fd = function(a) {
        this.R.disconnect();
        this.R.connect(a);
        this.N.disconnect();
        this.N.connect(a)
    };
    e.prototype.remove = function() {
        this.la.disconnect();
        this.lb.disconnect();
        this.R.disconnect();
        this.N.disconnect()
    };
    e.prototype.Tc = function() {
        return this.la
    };
    k.prototype.fd = function(a) {
        this.R.disconnect();
        this.R.connect(a);
        this.N.disconnect();
        this.N.connect(a)
    };
    k.prototype.remove = function() {
        this.la.disconnect();
        this.aj.disconnect();
        this.kd.disconnect();
        this.mk.disconnect();
        this.R.disconnect();
        this.N.disconnect()
    };
    k.prototype.Tc = function() {
        return this.la
    };
    l.prototype.fd = function(a) {
        this.R.disconnect();
        this.R.connect(a);
        this.N.disconnect();
        this.N.connect(a)
    };
    l.prototype.remove = function() {
        this.la.disconnect();
        this.Vf.disconnect();
        this.R.disconnect();
        this.N.disconnect()
    };
    l.prototype.Tc = function() {
        return this.la
    };
    w.prototype.fd = function(a) {
        this.N.disconnect();
        this.N.connect(a);
        this.R.disconnect();
        this.R.connect(a)
    };
    w.prototype.remove = function() {
        this.la.disconnect();
        this.kd.disconnect();
        this.Kb.disconnect();
        this.Lc.disconnect();
        this.N.disconnect();
        this.R.disconnect();
        this.tk.disconnect()
    };
    w.prototype.Tc = function() {
        return this.la
    };
    M.prototype.fd = function(a) {
        this.N.disconnect();
        this.N.connect(a);
        this.R.disconnect();
        this.R.connect(a)
    };
    M.prototype.remove = function() {
        this.la.disconnect();
        this.lb.disconnect();
        this.Kb.disconnect();
        this.Lc.disconnect();
        this.N.disconnect();
        this.R.disconnect()
    };
    M.prototype.Tc = function() {
        return this.la
    };
    P.prototype.fd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a)
    };
    P.prototype.remove = function() {
        this.ua.disconnect()
    };
    P.prototype.Tc = function() {
        return this.ua
    };
    m.prototype.fd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a)
    };
    m.prototype.remove = function() {
        this.Kb.disconnect();
        this.Lc.disconnect();
        this.ua.disconnect()
    };
    m.prototype.Tc = function() {
        return this.ua
    };
    u.prototype.fd = function(a) {
        this.R.disconnect();
        this.R.connect(a);
        this.N.disconnect();
        this.N.connect(a)
    };
    u.prototype.remove = function() {
        this.Kb.disconnect();
        this.nj.disconnect();
        this.la.disconnect();
        this.R.disconnect();
        this.N.disconnect()
    };
    u.prototype.Tc = function() {
        return this.la
    };
    I.prototype.jz = function(a, b) {.01 > a && (a = .01);
        this.tl.gain.value = a;
        this.sl.gain.value = Math.pow(1 / a, .6) * b
    };
    I.prototype.shape = function(a, b, c) {
        var d = 1.05 * c * b - b;
        c = 0 > a ? -1 : 1;
        a = 0 > a ? -a: a;
        b = a < b ? a: b + d * (1 - Math.exp( - (1 / d) * (a - b)));
        return b * c
    };
    I.prototype.Zw = function(a, b) {
        for (var c = Math.pow(10, a / 20), d = Math.pow(10, b / 20), e = 0, g = 0; 32768 > g; ++g) e = g / 32768,
        e = this.shape(e, c, d),
        this.kk[32768 + g] = e,
        this.kk[32768 - g - 1] = -e
    };
    I.prototype.fd = function(a) {
        this.R.disconnect();
        this.R.connect(a);
        this.N.disconnect();
        this.N.connect(a)
    };
    I.prototype.remove = function() {
        this.la.disconnect();
        this.tl.disconnect();
        this.cm.disconnect();
        this.sl.disconnect();
        this.R.disconnect();
        this.N.disconnect()
    };
    I.prototype.Tc = function() {
        return this.la
    };
    T.prototype.fd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a)
    };
    T.prototype.remove = function() {
        this.ua.disconnect()
    };
    T.prototype.Tc = function() {
        return this.ua
    };
    v.prototype.Mb = function() {
        this.ua.getFloatFrequencyData(this.Xw);
        this.ua.getByteTimeDomainData(this.ns);
        for (var a = this.ua.fftSize,
        b = 0,
        c = this.fj = 0,
        d = 0; b < a; b++) d = (this.ns[b] - 128) / 128,
        0 > d && (d = -d),
        this.fj < d && (this.fj = d),
        c += d * d;
        this.fj = q(this.fj);
        q(Math.sqrt(c / a))
    };
    v.prototype.fd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a)
    };
    v.prototype.remove = function() {
        this.ua.disconnect()
    };
    v.prototype.Tc = function() {
        return this.ua
    };
    H.prototype.pj = function(a) {
        this.Ba = a
    };
    H.prototype.Fk = function() {
        return !! this.Ba
    };
    H.prototype.Mb = function() {};
    C.prototype.Vy = function() {
        var a, b, c, d;
        c = a = 0;
        for (b = E.length; a < b; ++a) d = E[a],
        E[c] = d,
        d.buffer === this ? d.stop() : ++c;
        E.length = c;
        this.nh && (this.nh.disconnect(), this.nh = null);
        this.uh && (this.uh.disconnect(), this.uh = null);
        this.se = this.ra = null
    };
    C.prototype.Pp = function() {
        if (!this.ra && this.se) {
            var a = this;
            if (y.decodeAudioData) y.decodeAudioData(this.se,
            function(b) {
                a.ra = b;
                a.se = null;
                var c, d, e;
                if (ia(a.pl) || ka) ia(a.ek) || (c = a.ek.Vf, c.normalize = a.pr, c.buffer = b);
                else if (a.wh.length) {
                    c = 0;
                    for (d = a.wh.length; c < d; c++) {
                        b = a.wh[c];
                        e = new t(a, b.xs);
                        e.to(!0);
                        if ("undefined" !== typeof b.rr && (b.Ba = N.si(b.rr), !b.Ba)) continue;
                        if (b.Ba) {
                            var g = Sa(b.Ba.x, b.Ba.y, -b.Ba.q.Ub(), Ia, Za, !0),
                            f = Sa(b.Ba.x, b.Ba.y, -b.Ba.q.Ub(), Ia, Za, !1);
                            e.so(g, f, Ha(b.Ba.k - b.Ba.q.Ub()), b.en, b.Jn, b.Nn);
                            e.pj(b.Ba)
                        } else e.so(b.x, b.y, b.Hg, b.en, b.Jn, b.Nn);
                        e.play(a.Dn, a.Oo, a.Cl);
                        a.nl && e.pause();
                        E.push(e)
                    }
                    A(a.wh)
                } else e = new t(a, a.pl || ""),
                e.play(a.Dn, a.Oo, a.Cl),
                a.nl && e.pause(),
                E.push(e)
            },
            function() {
                a.rk = !0
            });
            else if (this.ra = y.createBuffer(this.se, !1), this.se = null, ia(this.pl) || ka) ia(this.ek) || (b = this.ek.Vf, b.normalize = this.pr, b.buffer = this.ra);
            else {
                var b = new t(this, this.pl);
                b.play(this.Dn, this.Oo, this.Cl);
                this.nl && b.pause();
                E.push(b)
            }
        }
    };
    C.prototype.Aq = function() {
        switch (this.da) {
        case 0:
            var a = 4 <= this.ra.readyState;
            a && (this.Po = !0);
            return a || this.Po;
        case 1:
            return !! this.se || !!this.ra;
        case 2:
            return ! 0;
        case 3:
            return ! 0
        }
        return ! 1
    };
    C.prototype.Wx = function() {
        switch (this.da) {
        case 0:
            return this.Aq();
        case 1:
            return !! this.ra;
        case 2:
            return ! 0;
        case 3:
            return ! 0
        }
        return ! 1
    };
    C.prototype.Kx = function() {
        switch (this.da) {
        case 0:
            return !! this.ra.error;
        case 1:
            return this.rk
        }
        return ! 1
    };
    t.prototype.fg = function() {
        switch (this.da) {
        case 0:
            return this.n.ended;
        case 1:
            return 1 === this.buffer.da ? !this.Zd && !this.Ya && this.n.loop || this.Ic ? !1 : this.Xg: this.n.ended;
        case 2:
            return this.Xg;
        case 3:
            !0
        }
        return ! 0
    };
    t.prototype.Gv = function() {
        return this.Zd || this.Ya ? !0 : this.fg()
    };
    t.prototype.to = function(a) {
        1 === O && (!this.ee && a ? this.xb && (this.pb || (this.pb = y.createPanner(), this.pb.panningModel = "number" === typeof this.pb.panningModel ? Tb: ["equalpower", "HRTF", "soundfield"][Tb], this.pb.distanceModel = "number" === typeof this.pb.distanceModel ? Ub: ["linear", "inverse", "exponential"][Ub], this.pb.refDistance = Rc, this.pb.maxDistance = Uc, this.pb.rolloffFactor = Vc), this.xb.disconnect(), this.xb.connect(this.pb), this.pb.connect(p(this.tag)), this.ee = !0) : this.ee && !a && this.xb && (this.pb.disconnect(), this.xb.disconnect(), this.xb.connect(p(this.tag)), this.ee = !1))
    };
    t.prototype.so = function(a, b, c, d, e, g) {
        this.ee && 1 === O && (this.pb.setPosition(a, b, 0), this.pb.setOrientation(Math.cos(D(c)), Math.sin(D(c)), 0), this.pb.coneInnerAngle = d, this.pb.coneOuterAngle = e, this.pb.coneOuterGain = g, this.Ir = a, this.Jr = b, this.Er = c, this.Fr = d, this.Gr = e, this.Hr = g)
    };
    t.prototype.pj = function(a) {
        this.ee && 1 === O && (this.Wb || (this.Wb = new H), this.Wb.pj(a))
    };
    t.prototype.Mb = function(a) {
        if (this.ee && 1 === O && this.Wb && this.Wb.Fk() && this.ig()) {
            this.Wb.Mb(a);
            a = this.Wb.Ba;
            var b = Sa(a.x, a.y, -a.q.Ub(), Ia, Za, !0),
            c = Sa(a.x, a.y, -a.q.Ub(), Ia, Za, !1);
            this.pb.setPosition(b, c, 0);
            b = 0;
            "undefined" !== typeof this.Wb.Ba.k && (b = a.k - a.q.Ub(), this.pb.setOrientation(Math.cos(b), Math.sin(b), 0))
        }
    };
    t.prototype.play = function(a, d, e, g) {
        var h = this.n;
        this.de = a;
        this.volume = d;
        e = e || 0;
        g = g || 0;
        switch (this.da) {
        case 0:
            1 !== h.playbackRate && (h.playbackRate = 1);
            h.volume !== d * da && (h.volume = d * da);
            h.loop !== a && (h.loop = a);
            h.muted && (h.muted = !1);
            if (h.currentTime !== e) try {
                h.currentTime = e
            } catch(m) {}
            f(this);
            break;
        case 1:
            this.muted = !1;
            this.oh = 1;
            if (1 === this.buffer.da) this.xb.gain.value = d * da,
            this.Zd || (this.n = y.createBufferSource(), this.n.buffer = this.buffer.ra, this.n.connect(this.xb)),
            this.n.onended = this.Tn,
            this.Nj = this.n,
            this.n.loop = a,
            this.Xg = !1,
            0 === e ? b(this.n, g) : c(this.n, e, this.sf(), g);
            else {
                1 !== h.playbackRate && (h.playbackRate = 1);
                h.loop !== a && (h.loop = a);
                h.volume = d * da;
                if (h.currentTime !== e) try {
                    h.currentTime = e
                } catch(k) {}
                f(this)
            }
            break;
        case 2:
            (!this.Zd && this.Ya || 0 !== e) && h.seekTo(e);
            h.play();
            this.Xg = !1;
            break;
        case 3:
            N.jc ? AppMobi.context.playSound(this.src, a) : AppMobi.player.playSound(this.src, a)
        }
        this.playbackRate = 1;
        this.startTime = (this.Zg ? N.Vb.na: N.Ze.na) - e;
        this.Ic = this.Ya = this.Zd = !1
    };
    t.prototype.stop = function() {
        switch (this.da) {
        case 0:
            this.n.paused || this.n.pause();
            break;
        case 1:
            1 === this.buffer.da ? g(this.n) : this.n.paused || this.n.pause();
            break;
        case 2:
            this.n.stop();
            break;
        case 3:
            N.jc && AppMobi.context.stopSound(this.src)
        }
        this.Ya = !0;
        this.Ic = !1
    };
    t.prototype.pause = function() {
        if (! (this.Zd || this.Ya || this.fg() || this.Ic)) {
            switch (this.da) {
            case 0:
                this.n.paused || this.n.pause();
                break;
            case 1:
                1 === this.buffer.da ? (this.zc = this.Ym(!0), this.de && (this.zc = this.zc % this.sf()), this.Ic = !0, g(this.n)) : this.n.paused || this.n.pause();
                break;
            case 2:
                this.n.pause();
                break;
            case 3:
                N.jc && AppMobi.context.stopSound(this.src)
            }
            this.Ic = !0
        }
    };
    t.prototype.$y = function() {
        if (! (this.Zd || this.Ya || this.fg()) && this.Ic) {
            switch (this.da) {
            case 0:
                f(this);
                break;
            case 1:
                1 === this.buffer.da ? (this.n = y.createBufferSource(), this.n.buffer = this.buffer.ra, this.n.connect(this.xb), this.n.onended = this.Tn, this.Nj = this.n, this.n.loop = this.de, this.xb.gain.value = da * this.volume * this.oh, this.Xl(), this.startTime = (this.Zg ? N.Vb.na: N.Ze.na) - this.zc / (this.playbackRate || .001), c(this.n, this.zc, this.sf())) : f(this);
                break;
            case 2:
                this.n.play();
                break;
            case 3:
                N.jc && AppMobi.context.resumeSound(this.src)
            }
            this.Ic = !1
        }
    };
    t.prototype.seek = function(a) {
        if (! (this.Zd || this.Ya || this.fg())) switch (this.da) {
        case 0:
            try {
                this.n.currentTime = a
            } catch(b) {}
            break;
        case 1:
            if (1 === this.buffer.da) this.Ic ? this.zc = a: (this.pause(), this.zc = a, this.$y());
            else try {
                this.n.currentTime = a
            } catch(c) {}
            break;
        case 3:
            N.jc && AppMobi.context.seekSound(this.src, a)
        }
    };
    t.prototype.Ty = function(a) {
        1 === this.da && (this.ee ? (this.pb.disconnect(), this.pb.connect(a)) : (this.xb.disconnect(), this.xb.connect(a)))
    };
    t.prototype.sf = function() {
        var a = 0;
        switch (this.da) {
        case 0:
            "undefined" !== typeof this.n.duration && (a = this.n.duration);
            break;
        case 1:
            a = this.buffer.ra.duration;
            break;
        case 2:
            a = this.n.getDuration();
            break;
        case 3:
            N.jc && (a = AppMobi.context.getDurationSound(this.src))
        }
        return a
    };
    t.prototype.Ym = function(a) {
        var b = this.sf(),
        c = 0;
        switch (this.da) {
        case 0:
            "undefined" !== typeof this.n.currentTime && (c = this.n.currentTime);
            break;
        case 1:
            if (1 === this.buffer.da) {
                if (this.Ic) return this.zc;
                c = (this.Zg ? N.Vb.na: N.Ze.na) - this.startTime
            } else "undefined" !== typeof this.n.currentTime && (c = this.n.currentTime);
            break;
        case 3:
            N.jc && (c = AppMobi.context.getPlaybackTimeSound(this.src))
        }
        a && (c *= this.playbackRate); ! this.de && c > b && (c = b);
        return c
    };
    t.prototype.ig = function() {
        return ! this.Ic && !this.Zd && !this.Ya && !this.fg()
    };
    t.prototype.pz = function() {
        return ! this.Zd && !this.Ya && !this.fg()
    };
    t.prototype.Gz = function() {
        var a = this.volume * da;
        isFinite(a) || (a = 0);
        switch (this.da) {
        case 0:
            "undefined" !== typeof this.n.volume && this.n.volume !== a && (this.n.volume = a);
            break;
        case 1:
            1 === this.buffer.da ? this.xb.gain.value = a * this.oh: "undefined" !== typeof this.n.volume && this.n.volume !== a && (this.n.volume = a)
        }
    };
    t.prototype.pk = function(a) {
        switch (this.da) {
        case 0:
            this.n.muted !== !!a && (this.n.muted = !!a);
            break;
        case 1:
            1 === this.buffer.da ? (this.oh = a ? 0 : 1, this.xb.gain.value = da * this.volume * this.oh) : this.n.muted !== !!a && (this.n.muted = !!a)
        }
    };
    t.prototype.kz = function() {
        this.bh = !0;
        this.pk(this.bh || this.Ki)
    };
    t.prototype.gs = function(a) {
        this.Ki = !!a;
        this.pk(this.bh || this.Ki)
    };
    t.prototype.Xl = function() {
        var a = this.playbackRate;
        this.Zg && (a *= N.Lh);
        switch (this.da) {
        case 0:
            this.n.playbackRate !== a && (this.n.playbackRate = a);
            break;
        case 1:
            1 === this.buffer.da ? this.n.playbackRate.value !== a && (this.n.playbackRate.value = a) : this.n.playbackRate !== a && (this.n.playbackRate = a)
        }
    };
    t.prototype.nz = function(a) {
        switch (this.da) {
        case 0:
            a ? this.ig() ? (this.ad = !0, this.n.pause()) : this.ad = !1 : this.ad && (this.n.play(), this.ad = !1);
            break;
        case 1:
            a ? this.ig() ? (this.ad = !0, 1 === this.buffer.da ? (this.zc = this.Ym(!0), this.de && (this.zc = this.zc % this.sf()), g(this.n)) : this.n.pause()) : this.ad = !1 : this.ad && (1 === this.buffer.da ? (this.n = y.createBufferSource(), this.n.buffer = this.buffer.ra, this.n.connect(this.xb), this.n.onended = this.Tn, this.Nj = this.n, this.n.loop = this.de, this.xb.gain.value = da * this.volume * this.oh, this.Xl(), this.startTime = (this.Zg ? N.Vb.na: N.Ze.na) - this.zc / (this.playbackRate || .001), c(this.n, this.zc, this.sf())) : this.n.play(), this.ad = !1);
            break;
        case 2:
            a ? this.ig() ? (this.n.pause(), this.ad = !0) : this.ad = !1 : this.ad && (this.ad = !1, this.n.play())
        }
    };
    U.ja = function(a) {
        this.type = a;
        N = this.b = a.b;
        L = this;
        this.Jc = null;
        this.Qi = -600;
        this.b.Ok && (Cb = !0); ! (this.b.fh || this.b.Di && (this.b.kn || this.b.Kk)) || this.b.Mk || this.b.zb || this.b.yq || Cb || (Sc = !0);
        y = null;
        "undefined" !== typeof AudioContext ? (O = 1, y = new AudioContext) : "undefined" !== typeof webkitAudioContext && (O = 1, y = new webkitAudioContext);
        this.b.fh && y && (y.close && y.close(), "undefined" !== typeof AudioContext ? y = new AudioContext: "undefined" !== typeof webkitAudioContext && (y = new webkitAudioContext));
        1 !== O && (this.b.Vc && "undefined" !== typeof window.Media ? O = 2 : this.b.zq && (O = 3));
        2 === O && (x = location.href, a = x.lastIndexOf("/"), -1 < a && (x = x.substr(0, a + 1)), x = x.replace("file://", ""));
        if (this.b.Xx && this.b.Yx && "undefined" === typeof Audio) alert("It looks like you're using Safari for Windows without Quicktime.  Audio cannot be played until Quicktime is installed."),
        this.b.Kf(this);
        else {
            if (this.b.jc) ua = this.b.Di;
            else try {
                ua = !!(new Audio).canPlayType('audio/ogg; codecs="vorbis"') && !this.b.Pk
            } catch(b) {
                ua = !1
            }
            this.b.Rl(this)
        }
    };
    var Ba = U.ja.prototype;
    Ba.O = function() {
        this.b.Ig = this;
        Y = this.C[0];
        this.Re = this.C[1];
        this.Fy = 0 !== this.C[2];
        this.nr = 0;
        Tb = this.C[3];
        Ub = this.C[4];
        this.Qi = -this.C[5];
        Rc = this.C[6];
        Uc = this.C[7];
        Vc = this.C[8];
        this.Jc = new H;
        var a = this.b.M || this.b.width,
        b = this.b.L || this.b.height;
        1 === O && (y.listener.setPosition(a / 2, b / 2, this.Qi), y.listener.setOrientation(0, 0, 1, 0, -1, 0), window.c2OnAudioMicStream = function(a, b) {
            Va && Va.disconnect();
            Vb = b.toLowerCase();
            Va = y.createMediaStreamSource(a);
            Va.connect(p(Vb))
        });
        this.b.zp(function(a) {
            L.By(a)
        });
        var c = this;
        this.b.mm(function(a) {
            c.Pn(a)
        })
    };
    Ba.Pn = function(a) {
        var b, c, d;
        b = 0;
        for (c = E.length; b < c; b++) d = E[b],
        d.Wb && d.Wb.Ba === a && (d.Wb.Ba = null, d.ee && d.ig() && d.de && d.stop());
        this.Jc.Ba === a && (this.Jc.Ba = null)
    };
    Ba.Lb = function() {
        var a = {
            silent: ka,
            masterVolume: da,
            listenerZ: this.Qi,
            listenerUid: this.Jc.Fk() ? this.Jc.Ba.uid: -1,
            playing: [],
            effects: {}
        },
        b = a.playing,
        c,
        d,
        e,
        g,
        f,
        h;
        c = 0;
        for (d = E.length; c < d; c++) e = E[c],
        !e.pz() || 3 === this.Re || e.be && 1 === this.Re || !e.be && 2 === this.Re || (g = e.Ym(), e.de && (g = g % e.sf()), g = {
            tag: e.tag,
            buffersrc: e.buffer.src,
            is_music: e.be,
            playbackTime: g,
            volume: e.volume,
            looping: e.de,
            muted: e.bh,
            playbackRate: e.playbackRate,
            paused: e.Ic,
            resume_position: e.zc
        },
        e.ee && (g.pan = {},
        h = g.pan, e.Wb && e.Wb.Fk() ? h.objUid = e.Wb.Ba.uid: (h.x = e.Ir, h.y = e.Jr, h.a = e.Er), h.ia = e.Fr, h.oa = e.Gr, h.og = e.Hr), b.push(g));
        b = a.effects;
        for (f in fa) if (fa.hasOwnProperty(f)) {
            e = [];
            c = 0;
            for (d = fa[f].length; c < d; c++) e.push({
                type: fa[f][c].type,
                params: fa[f][c].eb
            });
            b[f] = e
        }
        return a
    };
    var ib = [];
    Ba.kc = function(a) {
        var b = a.silent;
        da = a.masterVolume;
        this.Qi = a.listenerZ;
        this.Jc.pj(null);
        var c = a.listenerUid; - 1 !== c && (this.Jc.Yk = c, ib.push(this.Jc));
        var c = a.playing,
        d, g, f, h, n, q, p, r, B, t, J;
        if (3 !== this.Re) for (d = 0, g = E.length; d < g; d++) B = E[d],
        B.be && 1 === this.Re || (B.be || 2 !== this.Re) && B.stop();
        for (n in fa) if (fa.hasOwnProperty(n)) for (d = 0, g = fa[n].length; d < g; d++) fa[n][d].remove();
        Xa(fa);
        for (n in a.effects) if (a.effects.hasOwnProperty(n)) for (q = a.effects[n], d = 0, g = q.length; d < g; d++) switch (f = q[d].type, t = q[d].params, f) {
        case "filter":
            S(n, new e(t[0], t[1], t[2], t[3], t[4], t[5]));
            break;
        case "delay":
            S(n, new k(t[0], t[1], t[2]));
            break;
        case "convolve":
            f = t[2];
            B = this.yk(f, !1);
            B.ra ? f = new l(B.ra, t[0], t[1], f) : (f = new l(null, t[0], t[1], f), B.pr = t[0], B.ek = f);
            S(n, f);
            break;
        case "flanger":
            S(n, new w(t[0], t[1], t[2], t[3], t[4]));
            break;
        case "phaser":
            S(n, new M(t[0], t[1], t[2], t[3], t[4], t[5]));
            break;
        case "gain":
            S(n, new P(t[0]));
            break;
        case "tremolo":
            S(n, new m(t[0], t[1]));
            break;
        case "ringmod":
            S(n, new u(t[0], t[1]));
            break;
        case "distortion":
            S(n, new I(t[0], t[1], t[2], t[3], t[4]));
            break;
        case "compressor":
            S(n, new T(t[0], t[1], t[2], t[3], t[4]));
            break;
        case "analyser":
            S(n, new v(t[0], t[1]))
        }
        d = 0;
        for (g = c.length; d < g; d++) 3 === this.Re || (a = c[d], f = a.buffersrc, h = a.is_music, n = a.tag, q = a.playbackTime, p = a.looping, r = a.volume, J = (t = a.pan) && t.hasOwnProperty("objUid") ? t.objUid: -1, h && 1 === this.Re) || !h && 2 === this.Re || ((B = this.hq(f, n, h, p, r)) ? (B.zc = a.resume_position, B.to( !! t), B.play(p, r, q), B.Xl(), B.Gz(), B.pk(B.bh || B.Ki), a.paused && B.pause(), a.muted && B.kz(), B.pk(B.bh || B.Ki), t && ( - 1 !== J ? (B.Wb = B.Wb || new H, B.Wb.Yk = J, ib.push(B.Wb)) : B.so(t.x, t.y, t.a, t.ia, t.oa, t.og))) : (B = this.yk(f, h), B.Cl = q, B.nl = a.paused, t && ( - 1 !== J ? B.wh.push({
            rr: J,
            en: t.ia,
            Jn: t.oa,
            Nn: t.og,
            xs: n
        }) : B.wh.push({
            x: t.x,
            y: t.y,
            Hg: t.a,
            en: t.ia,
            Jn: t.oa,
            Nn: t.og,
            xs: n
        }))));
        if (b && !ka) {
            d = 0;
            for (g = E.length; d < g; d++) E[d].gs(!0);
            ka = !0
        } else if (!b && ka) {
            d = 0;
            for (g = E.length; d < g; d++) E[d].gs(!1);
            ka = !1
        }
    };
    Ba.qe = function() {
        var a, b, c, d;
        a = 0;
        for (b = ib.length; a < b; a++) c = ib[a],
        d = this.b.si(c.Yk),
        c.pj(d),
        c.Yk = -1,
        d && (Ia = d.x, Za = d.y);
        A(ib)
    };
    Ba.By = function(a) {
        if (!this.Fy) { ! a && y && y.resume && (y.resume(), Sb = !1);
            var b, c;
            b = 0;
            for (c = E.length; b < c; b++) E[b].nz(a);
            a && y && y.suspend && (y.suspend(), Sb = !0)
        }
    };
    Ba.Mb = function() {
        var a = this.b.pf,
        b, c, d;
        b = 0;
        for (c = E.length; b < c; b++) d = E[b],
        d.Mb(a),
        0 !== Y && d.Xl();
        var e, g;
        for (e in fa) if (fa.hasOwnProperty(e)) for (d = fa[e], b = 0, c = d.length; b < c; b++) g = d[b],
        g.Mb && g.Mb();
        1 === O && this.Jc.Fk() && (this.Jc.Mb(a), Ia = this.Jc.Ba.x, Za = this.Jc.Ba.y, y.listener.setPosition(this.Jc.Ba.x, this.Jc.Ba.y, this.Qi))
    };
    var jb = [];
    Ba.lz = function(a) {
        var b, c, d, e, g, f = 0;
        b = 0;
        for (c = a.length; b < c; ++b) if (d = a[b], e = d[0], d = 2 * d[1], (g = 4 < e.length && ".ogg" === e.substr(e.length - 4)) && ua || !g && !ua) jb.push({
            filename: e,
            size: d,
            Ba: null
        }),
        f += d;
        return f
    };
    Ba.sz = function() {
        var a, b, c, d;
        a = 0;
        for (b = jb.length; a < b; ++a) c = jb[a],
        d = this.b.Om + c.filename,
        c.Ba = this.yk(d, !1)
    };
    Ba.mx = function() {
        var a = 0,
        b, c, d;
        b = 0;
        for (c = jb.length; b < c; ++b) d = jb[b],
        d.Ba.Wx() || d.Ba.Kx() || this.b.zb || this.b.Kk ? a += d.size: d.Ba.Aq() && (a += Math.floor(d.size / 2));
        return a
    };
    Ba.Wy = function() {
        var a, b, c, d;
        c = a = 0;
        for (b = K.length; a < b; ++a) d = K[a],
        K[c] = d,
        d.be ? d.Vy() : ++c;
        K.length = c
    };
    Ba.yk = function(a, b) {
        var c, d, e, g = null;
        c = 0;
        for (d = K.length; c < d; c++) if (e = K[c], e.src === a) {
            g = e;
            break
        }
        g || (Cb && b && this.Wy(), g = new C(a, b), K.push(g));
        return g
    };
    Ba.hq = function(a, b, c, d, e) {
        var g, f, h;
        g = 0;
        for (f = E.length; g < f; g++) if (h = E[g], h.src === a && (h.Gv() || c)) return h.tag = b,
        h;
        a = this.yk(a, c);
        if (!a.ra) return "<preload>" !== b && (a.pl = b, a.Dn = d, a.Oo = e),
        null;
        h = new t(a, b);
        E.push(h);
        return h
    };
    var Ka = [];
    Q.prototype.Jj = function(a) {
        return mb(z, a)
    };
    U.j = new Q;
    B.prototype.Play = function(a, b, c, d) {
        if (a[0] === "block") {
            console.log("game over ......");
            setTimeout(function() {
                console.log(123);
                console.log("GameOver..............", window.AFTAFG);
                if (window.AFTAFG) {
                    window.AFTAFG.playAd(function(ret) {
                        console.log("sdk banner ret type", ret, 1);
                    },
                    1);
                } else {}
            },
            1200);
        } ! ka && (c = Math.pow(10, c / 20), isFinite(c) || (c = 0), 0 > c && (c = 0), 1 < c && (c = 1), X = this.hq(this.b.Om + a[0] + (ua ? ".ogg": ".m4a"), d, a[1], 0 !== b, c)) && (X.to(!1), X.play(0 !== b, c, 0, this.nr), this.nr = 0)
    };
    B.prototype.rp = function(a) {
        J(a);
        var b;
        a = 0;
        for (b = Ka.length; a < b; a++) Ka[a].stop()
    };
    U.u = new B;
    V.prototype.it = function(a, b) {
        J(b, !0);
        Ka.length ? a.G(Ka[0].sf()) : a.G(0)
    };
    U.I = new V
})();
function vc(h) {
    this.b = h
} (function() {
    function h() {
        q && p && window.OfflineClientInfo && window.OfflineClientInfo.SetMessageCallback(function(a) {
            r.Ay(a)
        })
    }
    function f() {}
    var d = vc.prototype;
    d.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    var n = d.za.prototype;
    n.O = function() {};
    var q = !1,
    p = !1;
    document.addEventListener("DOMContentLoaded",
    function() {
        if (window.C2_RegisterSW && navigator.serviceWorker) {}
    });
    var r = null;
    n.wr = function() {
        p = !0;
        h()
    };
    d.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    n = d.ja.prototype;
    n.O = function() {
        var a = this;
        window.addEventListener("resize",
        function() {
            a.b.trigger(vc.prototype.j.nu, a)
        });
        r = this;
        "undefined" !== typeof navigator.onLine && (window.addEventListener("online",
        function() {
            a.b.trigger(vc.prototype.j.ku, a)
        }), window.addEventListener("offline",
        function() {
            a.b.trigger(vc.prototype.j.iu, a)
        }));
        this.b.jc || (document.addEventListener("appMobi.device.update.available",
        function() {
            a.b.trigger(vc.prototype.j.im, a)
        }), document.addEventListener("backbutton",
        function() {
            a.b.trigger(vc.prototype.j.Ij, a)
        }), document.addEventListener("menubutton",
        function() {
            a.b.trigger(vc.prototype.j.fp, a)
        }), document.addEventListener("searchbutton",
        function() {
            a.b.trigger(vc.prototype.j.qu, a)
        }), document.addEventListener("tizenhwkey",
        function(b) {
            var c;
            switch (b.keyName) {
            case "back":
                c = a.b.trigger(vc.prototype.j.Ij, a); ! c && window.tizen && window.tizen.application.getCurrentApplication().exit();
                break;
            case "menu":
                (c = a.b.trigger(vc.prototype.j.fp, a)) || b.preventDefault()
            }
        }));
        this.b.Pk && "undefined" !== typeof Windows ? Windows.UI.Core.SystemNavigationManager.getForCurrentView().addEventListener("backrequested",
        function(b) {
            a.b.trigger(vc.prototype.j.Ij, a) && (b.handled = !0)
        }) : this.b.Dq && WinJS.Application && (WinJS.Application.onbackclick = function() {
            return !! a.b.trigger(vc.prototype.j.Ij, a)
        });
        this.b.zp(function(b) {
            b ? a.b.trigger(vc.prototype.j.lu, a) : a.b.trigger(vc.prototype.j.mu, a)
        })
    };
    n.Ay = function(a) {
        a = a.data.type;
        "downloading-update" === a ? this.b.trigger(vc.prototype.j.vu, this) : "update-ready" === a || "update-pending" === a ? this.b.trigger(vc.prototype.j.im, this) : "offline-ready" === a && this.b.trigger(vc.prototype.j.ju, this)
    };
    f.prototype.ku = function() {
        return ! 0
    };
    f.prototype.iu = function() {
        return ! 0
    };
    f.prototype.im = function() {
        return ! 0
    };
    f.prototype.mu = function() {
        return ! 0
    };
    f.prototype.lu = function() {
        return ! 0
    };
    f.prototype.nu = function() {
        return ! 0
    };
    f.prototype.Ij = function() {
        return ! 0
    };
    f.prototype.fp = function() {
        return ! 0
    };
    f.prototype.qu = function() {
        return ! 0
    };
    f.prototype.vu = function() {
        return ! 0
    };
    f.prototype.im = function() {
        return ! 0
    };
    f.prototype.ju = function() {
        return ! 0
    };
    d.j = new f;
    d.u = new
    function() {};
    d.I = new
    function() {}
})();
function sc(h) {
    this.b = h
} (function() {
    function h() {
        this.name = "";
        this.mj = 0;
        this.eb = []
    }
    function f() {
        a++;
        a === r.length && r.push(new h);
        return r[a]
    }
    function d() {}
    function n() {}
    function q() {}
    var p = sc.prototype;
    p.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    p.za.prototype.O = function() {};
    p.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    var r = [],
    a = -1;
    p.ja.prototype.O = function() {
        var b = this;
        window.c2_callFunction = function(c, d) {
            var e, h, l, n = f();
            n.name = c.toLowerCase();
            n.mj = 0;
            if (d) for (n.eb.length = d.length, e = 0, h = d.length; e < h; ++e) l = d[e],
            n.eb[e] = "number" === typeof l || "string" === typeof l ? l: "boolean" === typeof l ? l ? 1 : 0 : 0;
            else A(n.eb);
            b.b.trigger(sc.prototype.j.Kj, b, n.name);
            a--;
            return n.mj
        }
    };
    d.prototype.Kj = function(b) {
        var c = 0 > a ? null: r[a];
        return c ? mb(b, c.name) : !1
    };
    d.prototype.ct = function(b, c, d) {
        var e = 0 > a ? null: r[a];
        if (!e) return ! 1;
        b = sa(b);
        return 0 > b || b >= e.eb.length ? !1 : ic(e.eb[b], c, d)
    };
    p.j = new d;
    n.prototype.CallFunction = function(b, c) {
        var d = f();
        d.name = b.toLowerCase();
        d.mj = 0;
        Ca(d.eb, c);
        this.b.trigger(sc.prototype.j.Kj, this, d.name);
        a--
    };
    p.u = new n;
    q.prototype.wu = function(b, c) {
        c = sa(c);
        var d = 0 > a ? null: r[a];
        d ? 0 <= c && c < d.eb.length ? b.rj(d.eb[c]) : b.P(0) : b.P(0)
    };
    q.prototype.Us = function(b, c) {
        var d = f();
        d.name = c.toLowerCase();
        d.mj = 0;
        A(d.eb);
        var e, h;
        e = 2;
        for (h = arguments.length; e < h; e++) d.eb.push(arguments[e]);
        this.b.trigger(sc.prototype.j.Kj, this, d.name);
        a--;
        b.rj(d.mj)
    };
    p.I = new q
})();
var wc = !1;
try { !
    function() {
        var h, f, d; !
        function() {
            var n = {},
            q = {};
            h = function(d, f, a) {
                n[d] = {
                    Im: f,
                    um: a
                }
            };
            d = f = function(h) {
                function r(a) {
                    if ("." !== a.charAt(0)) return a;
                    a = a.split("/");
                    for (var b = h.split("/").slice(0, -1), c = 0, d = a.length; d > c; c++) {
                        var e = a[c];
                        ".." === e ? b.pop() : "." !== e && b.push(e)
                    }
                    return b.join("/")
                }
                if (d.qv = n, q[h]) return q[h];
                if (q[h] = {},
                !n[h]) throw Error("Could not find module " + h);
                for (var a, b = n[h], c = b.Im, b = b.um, g = [], e = 0, k = c.length; k > e; e++)"exports" === c[e] ? g.push(a = {}) : g.push(f(r(c[e])));
                c = b.apply(this, g);
                return q[h] = a || c
            }
        } ();
        h("promise/all", ["./utils", "exports"],
        function(d, f) {
            var h = d.isArray,
            r = d.isFunction;
            f.all = function(a) {
                if (!h(a)) throw new TypeError("You must pass an array to all.");
                return new this(function(b, c) {
                    function d(a) {
                        return function(c) {
                            f[a] = c;
                            0 === --h && b(f)
                        }
                    }
                    var e, f = [],
                    h = a.length;
                    0 === h && b([]);
                    for (var n = 0; n < a.length; n++)(e = a[n]) && r(e.then) ? e.then(d(n), c) : (f[n] = e, 0 === --h && b(f))
                })
            }
        });
        h("promise/asap", ["exports"],
        function(d) {
            function f() {
                return function() {
                    process.uy(a)
                }
            }
            function h() {
                var b = 0,
                c = new g(a),
                d = document.createTextNode("");
                return c.observe(d, {
                    characterData: !0
                }),
                function() {
                    d.data = b = ++b % 2
                }
            }
            function r() {
                return function() {
                    e.setTimeout(a, 1)
                }
            }
            function a() {
                for (var a = 0; a < k.length; a++) {
                    var b = k[a]; (0, b[0])(b[1])
                }
                k = []
            }
            var b, c = "undefined" != typeof window ? window: {},
            g = c.MutationObserver || c.WebKitMutationObserver,
            e = "undefined" != typeof global ? global: void 0 === this ? window: this,
            k = [];
            b = "undefined" != typeof process && "[object process]" === {}.toString.call(process) ? f() : g ? h() : r();
            d.qm = function(a, c) {
                1 === k.push([a, c]) && b()
            }
        });
        h("promise/config", ["exports"],
        function(d) {
            var f = {
                Ox: !1
            };
            d.$h = f;
            d.Bm = function(d, h) {
                return 2 !== arguments.length ? f[d] : void(f[d] = h)
            }
        });
        h("promise/polyfill", ["./promise", "./utils", "exports"],
        function(d, f, h) {
            var r = d.Promise,
            a = f.isFunction;
            h.ao = function() {
                var b;
                b = "undefined" != typeof global ? global: "undefined" != typeof window && window.document ? window: self;
                "Promise" in b && "resolve" in b.Promise && "reject" in b.Promise && "all" in b.Promise && "race" in b.Promise &&
                function() {
                    var c;
                    return new b.Promise(function(a) {
                        c = a
                    }),
                    a(c)
                } () || (b.Promise = r)
            }
        });
        h("promise/promise", "./config ./utils ./all ./race ./resolve ./reject ./asap exports".split(" "),
        function(d, f, h, r, a, b, c, g) {
            function e(a) {
                if (!t(a)) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
                if (! (this instanceof e)) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
                this.pe = [];
                k(a, this)
            }
            function k(a, b) {
                function c(a) {
                    m(b, a)
                }
                function d(a) {
                    I(b, a)
                }
                try {
                    a(c, d)
                } catch(e) {
                    d(e)
                }
            }
            function l(a, b, c, d) {
                var e, g, f, h, k = t(c);
                if (k) try {
                    e = c(d),
                    f = !0
                } catch(l) {
                    h = !0,
                    g = l
                } else e = d,
                f = !0;
                P(b, e) || (k && f ? m(b, e) : h ? I(b, g) : a === S ? m(b, e) : a === Q && I(b, e))
            }
            function w(a, b, c, d) {
                a = a.pe;
                var e = a.length;
                a[e] = b;
                a[e + S] = c;
                a[e + Q] = d
            }
            function M(a, b) {
                for (var c, d, e = a.pe,
                g = a.oe,
                f = 0; f < e.length; f += 3) c = e[f],
                d = e[f + b],
                l(b, c, d, g);
                a.pe = null
            }
            function P(a, b) {
                var c, d = null;
                try {
                    if (a === b) throw new TypeError("A promises callback cannot return that same promise.");
                    if (C(b) && (d = b.then, t(d))) return d.call(b,
                    function(d) {
                        return c ? !0 : (c = !0, void(b !== d ? m(a, d) : u(a, d)))
                    },
                    function(b) {
                        return c ? !0 : (c = !0, void I(a, b))
                    }),
                    !0
                } catch(e) {
                    return c ? !0 : (I(a, e), !0)
                }
                return ! 1
            }
            function m(a, b) {
                a === b ? u(a, b) : P(a, b) || u(a, b)
            }
            function u(a, b) {
                a.Fb === F && (a.Fb = J, a.oe = b, H.async(T, a))
            }
            function I(a, b) {
                a.Fb === F && (a.Fb = J, a.oe = b, H.async(v, a))
            }
            function T(a) {
                M(a, a.Fb = S)
            }
            function v(a) {
                M(a, a.Fb = Q)
            }
            var H = d.$h,
            C = (d.Bm, f.Kn),
            t = f.isFunction;
            d = (f.now, h.all);
            r = r.race;
            a = a.resolve;
            b = b.reject;
            H.async = c.qm;
            var F = void 0,
            J = 0,
            S = 1,
            Q = 2;
            e.prototype = {
                constructor: e,
                Fb: void 0,
                oe: void 0,
                pe: void 0,
                then: function(a, b) {
                    var c = this,
                    d = new this.constructor(function() {});
                    if (this.Fb) {
                        var e = arguments;
                        H.async(function() {
                            l(c.Fb, d, e[c.Fb - 1], c.oe)
                        })
                    } else w(this, d, a, b);
                    return d
                },
                "catch": function(a) {
                    return this.then(null, a)
                }
            };
            e.all = d;
            e.race = r;
            e.resolve = a;
            e.reject = b;
            g.Promise = e
        });
        h("promise/race", ["./utils", "exports"],
        function(d, f) {
            var h = d.isArray;
            f.race = function(d) {
                if (!h(d)) throw new TypeError("You must pass an array to race.");
                return new this(function(a, b) {
                    for (var c, g = 0; g < d.length; g++)(c = d[g]) && "function" == typeof c.then ? c.then(a, b) : a(c)
                })
            }
        });
        h("promise/reject", ["exports"],
        function(d) {
            d.reject = function(d) {
                return new this(function(f, h) {
                    h(d)
                })
            }
        });
        h("promise/resolve", ["exports"],
        function(d) {
            d.resolve = function(d) {
                return d && "object" == typeof d && d.constructor === this ? d: new this(function(f) {
                    f(d)
                })
            }
        });
        h("promise/utils", ["exports"],
        function(d) {
            function f(d) {
                return "function" == typeof d
            }
            var h = Date.now ||
            function() {
                return (new Date).getTime()
            };
            d.Kn = function(d) {
                return f(d) || "object" == typeof d && null !== d
            };
            d.isFunction = f;
            d.isArray = function(d) {
                return "[object Array]" === Object.prototype.toString.call(d)
            };
            d.now = h
        });
        f("promise/polyfill").ao()
    } ();
    var xc = function() {
        return function(h) {
            function f(n) {
                if (d[n]) return d[n].kb;
                var q = d[n] = {
                    kb: {},
                    id: n,
                    loaded: !1
                };
                return h[n].call(q.kb, q, q.kb, f),
                q.loaded = !0,
                q.kb
            }
            var d = {};
            return f.te = h,
            f.Rf = d,
            f.vh = "",
            f(0)
        } ([function(h, f, d) {
            f.ne = !0;
            var n = function(f) {
                function h(a, b) {
                    a[b] = function() {
                        var c = arguments;
                        return a.ready().then(function() {
                            return a[b].apply(a, c)
                        })
                    }
                }
                function n() {
                    for (var a = 1; a < arguments.length; a++) {
                        var b = arguments[a];
                        if (b) for (var c in b) b.hasOwnProperty(c) && (l(b[c]) ? arguments[0][c] = b[c].slice() : arguments[0][c] = b[c])
                    }
                    return arguments[0]
                }
                function a(a) {
                    for (var b in c) if (c.hasOwnProperty(b) && c[b] === a) return ! 0;
                    return ! 1
                }
                var b = {},
                c = {
                    xd: "asyncStorage",
                    yd: "localStorageWrapper",
                    zd: "webSQLStorage"
                },
                g = "clear getItem iterate key keys length removeItem setItem".split(" "),
                e = {
                    description: "",
                    Qc: [c.xd, c.zd, c.yd].slice(),
                    name: "localforage",
                    size: 4980736,
                    B: "keyvaluepairs",
                    version: 1
                },
                k = function(a) {
                    var b = {},
                    d;
                    try {
                        var e = e || a.indexedDB || a.webkitIndexedDB || a.mozIndexedDB || a.Oi || a.msIndexedDB;
                        d = "undefined" != typeof a.openDatabase && a.navigator && a.navigator.userAgent && /Safari/.test(a.navigator.userAgent) && !/Chrome/.test(a.navigator.userAgent) ? !1 : e && "function" == typeof e.open && "undefined" != typeof a.IDBKeyRange
                    } catch(g) {
                        d = !1
                    }
                    b[c.xd] = !!d;
                    var f;
                    try {
                        f = a.openDatabase
                    } catch(h) {
                        f = !1
                    }
                    b[c.zd] = !!f;
                    var k;
                    try {
                        k = a.localStorage && "setItem" in a.localStorage && a.localStorage.setItem
                    } catch(l) {
                        k = !1
                    }
                    return b[c.yd] = !!k,
                    b
                } (f),
                l = Array.isArray ||
                function(a) {
                    return "[object Array]" === Object.prototype.toString.call(a)
                };
                return new(function() {
                    function f(a) {
                        if (! (this instanceof f)) throw new TypeError("Cannot call a class as a function");
                        this.xd = c.xd;
                        this.yd = c.yd;
                        this.zd = c.zd;
                        this.Lf = n({},
                        e);
                        this.tc = n({},
                        this.Lf, a);
                        this.Th = this.hb = null;
                        this.cc = !1;
                        this.A = null;
                        this.Uh();
                        this.oj(this.tc.Qc)
                    }
                    return f.prototype.$h = function(a) {
                        if ("object" == typeof a) {
                            if (this.cc) return Error("Can't call config() after localforage has been used.");
                            for (var b in a)"storeName" === b && (a[b] = a[b].replace(/\W/g, "_")),
                            this.tc[b] = a[b];
                            return "driver" in a && a.Qc && this.oj(this.tc.Qc),
                            !0
                        }
                        return "string" == typeof a ? this.tc[a] : this.tc
                    },
                    f.prototype.Qc = function() {
                        return this.Ad || null
                    },
                    f.prototype.pi = function(c, e, g) {
                        var f = this,
                        h = function() {
                            if (a(c)) switch (c) {
                            case f.xd:
                                return new Promise(function(a) {
                                    a(d(1))
                                });
                            case f.yd:
                                return new Promise(function(a) {
                                    a(d(2))
                                });
                            case f.zd:
                                return new Promise(function(a) {
                                    a(d(4))
                                })
                            } else if (b[c]) return Promise.resolve(b[c]);
                            return Promise.reject(Error("Driver not found."))
                        } ();
                        return h.then(e, g),
                        h
                    },
                    f.prototype.ready = function(a) {
                        var b = this,
                        c = b.hb.then(function() {
                            return null === b.cc && (b.cc = b.Th()),
                            b.cc
                        });
                        return c.then(a, a),
                        c
                    },
                    f.prototype.oj = function(a, b, c) {
                        function d() {
                            g.tc.Qc = g.Qc()
                        }
                        function e(a) {
                            return function() {
                                function b() {
                                    for (; c < a.length;) {
                                        var e = a[c];
                                        return c++,
                                        g.A = null,
                                        g.cc = null,
                                        g.pi(e).then(function(a) {
                                            return g.jm(a),
                                            d(),
                                            g.cc = g.Nf(g.tc),
                                            g.cc
                                        })["catch"](b)
                                    }
                                    d();
                                    return g.hb = Promise.reject(Error("No available storage method found.")),
                                    g.hb
                                }
                                var c = 0;
                                return b()
                            }
                        }
                        var g = this;
                        l(a) || (a = [a]);
                        var f = this.km(a);
                        return this.hb = (null !== this.hb ? this.hb["catch"](function() {
                            return Promise.resolve()
                        }) : Promise.resolve()).then(function() {
                            var a = f[0];
                            return g.A = null,
                            g.cc = null,
                            g.pi(a).then(function(a) {
                                g.Ad = a.Ad;
                                d();
                                g.Uh();
                                g.Th = e(f)
                            })
                        })["catch"](function() {
                            d();
                            return g.hb = Promise.reject(Error("No available storage method found.")),
                            g.hb
                        }),
                        this.hb.then(b, c),
                        this.hb
                    },
                    f.prototype.supports = function(a) {
                        return !! k[a]
                    },
                    f.prototype.jm = function(a) {
                        n(this, a)
                    },
                    f.prototype.km = function(a) {
                        for (var b = [], c = 0, d = a.length; d > c; c++) {
                            var e = a[c];
                            this.supports(e) && b.push(e)
                        }
                        return b
                    },
                    f.prototype.Uh = function() {
                        for (var a = 0; a < g.length; a++) h(this, g[a])
                    },
                    f.prototype.fk = function(a) {
                        return new f(a)
                    },
                    f
                } ())
            } ("undefined" != typeof window ? window: self);
            f["default"] = n;
            h.kb = f["default"]
        },
        function(h, f) {
            f.ne = !0;
            f["default"] = function(d) {
                function f(a, b) {
                    a = a || [];
                    b = b || {};
                    try {
                        return new Blob(a, b)
                    } catch(c) {
                        if ("TypeError" !== c.name) throw c;
                        for (var e = new(d.BlobBuilder || d.te || d.ei || d.WebKitBlobBuilder), g = 0; g < a.length; g += 1) e.append(a[g]);
                        return e.getBlob(b.type)
                    }
                }
                function h(a) {
                    return new Promise(function(b, c) {
                        var d = new XMLHttpRequest;
                        d.open("GET", a);
                        d.withCredentials = !0;
                        d.responseType = "arraybuffer";
                        d.onreadystatechange = function() {
                            return 4 === d.readyState ? 200 === d.status ? b({
                                response: d.response,
                                type: d.getResponseHeader("Content-Type")
                            }) : void c({
                                status: d.status,
                                response: d.response
                            }) : void 0
                        };
                        d.send()
                    })
                }
                function p(a) {
                    return (new Promise(function(b, c) {
                        var d = f([""], {
                            type: "image/png"
                        }),
                        e = a.transaction([F], "readwrite");
                        e.objectStore(F).put(d, "key");
                        e.oncomplete = function() {
                            var d = a.transaction([F], "readwrite").objectStore(F).get("key");
                            d.onerror = c;
                            d.onsuccess = function(a) {
                                var c = URL.createObjectURL(a.target.result);
                                h(c).then(function(a) {
                                    b(!(!a || "image/png" !== a.type))
                                },
                                function() {
                                    b(!1)
                                }).then(function() {
                                    URL.revokeObjectURL(c)
                                })
                            }
                        };
                        e.onerror = e.onabort = c
                    }))["catch"](function() {
                        return ! 1
                    })
                }
                function r(a) {
                    return "boolean" == typeof C ? Promise.resolve(C) : p(a).then(function(a) {
                        return C = a
                    })
                }
                function a(a) {
                    return new Promise(function(b, c) {
                        var d = new FileReader;
                        d.onerror = c;
                        d.onloadend = function(c) {
                            b({
                                Sh: !0,
                                data: btoa(c.target.result || ""),
                                type: a.type
                            })
                        };
                        d.readAsBinaryString(a)
                    })
                }
                function b(a) {
                    for (var b = atob(a.data), c = b.length, d = new ArrayBuffer(c), e = new Uint8Array(d), g = 0; c > g; g++) e[g] = b.charCodeAt(g);
                    return f([d], {
                        type: a.type
                    })
                }
                function c(a) {
                    var b = this,
                    c = b.Mf().then(function() {
                        var a = t[b.A.name];
                        return a && a.Pc ? a.Pc: void 0
                    });
                    return c.then(a, a),
                    c
                }
                function g(a) {
                    a = t[a.name];
                    var b = {};
                    b.promise = new Promise(function(a) {
                        b.resolve = a
                    });
                    a.fi.push(b);
                    a.Pc ? a.Pc = a.Pc.then(function() {
                        return b.promise
                    }) : a.Pc = b.promise
                }
                function e(a) {
                    function b() {
                        return Promise.resolve()
                    }
                    var e = this,
                    g = {
                        db: null
                    };
                    if (a) for (var f in a) g[f] = a[f];
                    t || (t = {});
                    var h = t[g.name];
                    h || (h = {
                        Fe: [],
                        db: null,
                        Pc: null,
                        fi: []
                    },
                    t[g.name] = h);
                    h.Fe.push(e);
                    e.Mf || (e.Mf = e.ready, e.ready = c);
                    a = [];
                    for (f = 0; f < h.Fe.length; f++) {
                        var m = h.Fe[f];
                        m !== e && a.push(m.Mf()["catch"](b))
                    }
                    var l = h.Fe.slice(0);
                    return Promise.all(a).then(function() {
                        return g.db = h.db,
                        k(g, !1)
                    }).then(function(a) {
                        g.db = a;
                        var b;
                        b = e.Lf.version;
                        if (g.db) {
                            var c = !g.db.objectStoreNames.contains(g.B),
                            f = g.version > g.db.version; (g.version < g.db.version && (g.version !== b && d.console.warn('The database "' + g.name + "\" can't be downgraded from version " + g.db.version + " to version " + g.version + "."), g.version = g.db.version), f || c) ? (c && (b = g.db.version + 1, b > g.version && (g.version = b)), b = !0) : b = !1
                        } else b = !0;
                        return b ? k(g, !0) : a
                    }).then(function(a) {
                        g.db = h.db = a;
                        e.A = g;
                        for (a = 0; a < l.length; a++) {
                            var b = l[a];
                            b !== e && (b.A.db = g.db, b.A.version = g.version)
                        }
                    })
                }
                function k(a, b) {
                    return new Promise(function(c, e) {
                        if (a.db) {
                            if (!b) return c(a.db);
                            g(a);
                            a.db.close()
                        }
                        var f = [a.name];
                        b && f.push(a.version);
                        var h = H.open.apply(H, f);
                        b && (h.onupgradeneeded = function(b) {
                            var c = h.result;
                            try {
                                c.createObjectStore(a.B),
                                1 >= b.oldVersion && c.createObjectStore(F)
                            } catch(e) {
                                if ("ConstraintError" !== e.name) throw e;
                                d.console.warn('The database "' + a.name + '" has been upgraded from version ' + b.oldVersion + " to version " + b.newVersion + ', but the storage "' + a.B + '" already exists.')
                            }
                        });
                        h.onerror = function() {
                            e(h.error)
                        };
                        h.onsuccess = function() {
                            c(h.result);
                            var b = t[a.name].fi.pop();
                            b && b.resolve()
                        }
                    })
                }
                function l(a, c) {
                    var e = this;
                    "string" != typeof a && (d.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var g = new Promise(function(c, d) {
                        e.ready().then(function() {
                            var g = e.A,
                            f = g.db.transaction(g.B, "readonly").objectStore(g.B).get(a);
                            f.onsuccess = function() {
                                var a = f.result;
                                void 0 === a && (a = null);
                                a && a.Sh && (a = b(a));
                                c(a)
                            };
                            f.onerror = function() {
                                d(f.error)
                            }
                        })["catch"](d)
                    });
                    return v(g, c),
                    g
                }
                function w(a, c) {
                    var d = this,
                    e = new Promise(function(c, e) {
                        d.ready().then(function() {
                            var g = d.A,
                            f = g.db.transaction(g.B, "readonly").objectStore(g.B).openCursor(),
                            h = 1;
                            f.onsuccess = function() {
                                var d = f.result;
                                if (d) {
                                    var e = d.value;
                                    e && e.Sh && (e = b(e));
                                    e = a(e, d.key, h++);
                                    void 0 !== e ? c(e) : d["continue"]()
                                } else c()
                            };
                            f.onerror = function() {
                                e(f.error)
                            }
                        })["catch"](e)
                    });
                    return v(e, c),
                    e
                }
                function M(b, c, e) {
                    var g = this;
                    "string" != typeof b && (d.console.warn(b + " used as a key, but it is not a string."), b = String(b));
                    var f = new Promise(function(d, e) {
                        var f;
                        g.ready().then(function() {
                            return f = g.A,
                            c instanceof Blob ? r(f.db).then(function(b) {
                                return b ? c: a(c)
                            }) : c
                        }).then(function(a) {
                            var c = f.db.transaction(f.B, "readwrite"),
                            g = c.objectStore(f.B);
                            null === a && (a = void 0);
                            c.oncomplete = function() {
                                void 0 === a && (a = null);
                                d(a)
                            };
                            c.onabort = c.onerror = function() {
                                e(h.error ? h.error: h.transaction.error)
                            };
                            var h = g.put(a, b)
                        })["catch"](e)
                    });
                    return v(f, e),
                    f
                }
                function P(a, b) {
                    var c = this;
                    "string" != typeof a && (d.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var e = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A,
                            g = e.db.transaction(e.B, "readwrite"),
                            f = g.objectStore(e.B)["delete"](a);
                            g.oncomplete = function() {
                                b()
                            };
                            g.onerror = function() {
                                d(f.error)
                            };
                            g.onabort = function() {
                                d(f.error ? f.error: f.transaction.error)
                            }
                        })["catch"](d)
                    });
                    return v(e, b),
                    e
                }
                function m(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readwrite"),
                            g = e.objectStore(d.B).clear();
                            e.oncomplete = function() {
                                a()
                            };
                            e.onabort = e.onerror = function() {
                                c(g.error ? g.error: g.transaction.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function u(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readonly").objectStore(d.B).count();
                            e.onsuccess = function() {
                                a(e.result)
                            };
                            e.onerror = function() {
                                c(e.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function I(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        return 0 > a ? void b(null) : void c.ready().then(function() {
                            var e = c.A,
                            g = !1,
                            f = e.db.transaction(e.B, "readonly").objectStore(e.B).openCursor();
                            f.onsuccess = function() {
                                var c = f.result;
                                return c ? void(0 === a ? b(c.key) : g ? b(c.key) : (g = !0, c.advance(a))) : void b(null)
                            };
                            f.onerror = function() {
                                d(f.error)
                            }
                        })["catch"](d)
                    });
                    return v(d, b),
                    d
                }
                function T(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readonly").objectStore(d.B).openCursor(),
                            g = [];
                            e.onsuccess = function() {
                                var b = e.result;
                                return b ? (g.push(b.key), void b["continue"]()) : void a(g)
                            };
                            e.onerror = function() {
                                c(e.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function v(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var H = H || d.indexedDB || d.webkitIndexedDB || d.mozIndexedDB || d.Oi || d.msIndexedDB;
                if (H) {
                    var C, t, F = "local-forage-detect-blob-support";
                    return {
                        Ad: "asyncStorage",
                        Nf: e,
                        Ni: w,
                        getItem: l,
                        setItem: M,
                        removeItem: P,
                        clear: m,
                        length: u,
                        key: I,
                        keys: T
                    }
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f, d) {
            f.ne = !0;
            f["default"] = function(f) {
                function h(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var p = null;
                try {
                    if (! (f.localStorage && "setItem" in f.localStorage)) return;
                    p = f.localStorage
                } catch(r) {
                    return
                }
                return {
                    Ad: "localStorageWrapper",
                    Nf: function(a) {
                        var b = {};
                        if (a) for (var c in a) b[c] = a[c];
                        return b.nb = b.name + "/",
                        b.B !== this.Lf.B && (b.nb += b.B + "/"),
                        this.A = b,
                        (new Promise(function(a) {
                            a(d(3))
                        })).then(function(a) {
                            return b.Bc = a,
                            Promise.resolve()
                        })
                    },
                    Ni: function(a, b) {
                        var c = this,
                        d = c.ready().then(function() {
                            for (var b = c.A,
                            d = b.nb,
                            g = d.length,
                            f = p.length,
                            h = 1,
                            n = 0; f > n; n++) {
                                var m = p.key(n);
                                if (0 === m.indexOf(d)) {
                                    var q = p.getItem(m);
                                    if (q && (q = b.Bc.ze(q)), q = a(q, m.substring(g), h++), void 0 !== q) return q
                                }
                            }
                        });
                        return h(d, b),
                        d
                    },
                    getItem: function(a, b) {
                        var c = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var d = c.ready().then(function() {
                            var b = c.A,
                            d = p.getItem(b.nb + a);
                            return d && (d = b.Bc.ze(d)),
                            d
                        });
                        return h(d, b),
                        d
                    },
                    setItem: function(a, b, c) {
                        var d = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var e = d.ready().then(function() {
                            void 0 === b && (b = null);
                            var c = b;
                            return new Promise(function(e, f) {
                                var h = d.A;
                                h.Bc.serialize(b,
                                function(b, d) {
                                    if (d) f(d);
                                    else try {
                                        p.setItem(h.nb + a, b),
                                        e(c)
                                    } catch(g) {
                                        "QuotaExceededError" !== g.name && "NS_ERROR_DOM_QUOTA_REACHED" !== g.name || f(g),
                                        f(g)
                                    }
                                })
                            })
                        });
                        return h(e, c),
                        e
                    },
                    removeItem: function(a, b) {
                        var c = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var d = c.ready().then(function() {
                            p.removeItem(c.A.nb + a)
                        });
                        return h(d, b),
                        d
                    },
                    clear: function(a) {
                        var b = this,
                        c = b.ready().then(function() {
                            for (var a = b.A.nb,
                            c = p.length - 1; 0 <= c; c--) {
                                var d = p.key(c);
                                0 === d.indexOf(a) && p.removeItem(d)
                            }
                        });
                        return h(c, a),
                        c
                    },
                    length: function(a) {
                        var b = this.keys().then(function(a) {
                            return a.length
                        });
                        return h(b, a),
                        b
                    },
                    key: function(a, b) {
                        var c = this,
                        d = c.ready().then(function() {
                            var b, d = c.A;
                            try {
                                b = p.key(a)
                            } catch(g) {
                                b = null
                            }
                            return b && (b = b.substring(d.nb.length)),
                            b
                        });
                        return h(d, b),
                        d
                    },
                    keys: function(a) {
                        var b = this,
                        c = b.ready().then(function() {
                            for (var a = b.A,
                            c = p.length,
                            d = [], f = 0; c > f; f++) 0 === p.key(f).indexOf(a.nb) && d.push(p.key(f).substring(a.nb.length));
                            return d
                        });
                        return h(c, a),
                        c
                    }
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f) {
            f.ne = !0;
            f["default"] = function(d) {
                function f(a) {
                    var b, c, d, e, h;
                    b = .75 * a.length;
                    var l = a.length,
                    n = 0;
                    "=" === a[a.length - 1] && (b--, "=" === a[a.length - 2] && b--);
                    var q = new ArrayBuffer(b),
                    r = new Uint8Array(q);
                    for (b = 0; l > b; b += 4) c = p.indexOf(a[b]),
                    d = p.indexOf(a[b + 1]),
                    e = p.indexOf(a[b + 2]),
                    h = p.indexOf(a[b + 3]),
                    r[n++] = c << 2 | d >> 4,
                    r[n++] = (15 & d) << 4 | e >> 2,
                    r[n++] = (3 & e) << 6 | 63 & h;
                    return q
                }
                function h(a) {
                    var b = new Uint8Array(a),
                    c = "";
                    for (a = 0; a < b.length; a += 3) c += p[b[a] >> 2],
                    c += p[(3 & b[a]) << 4 | b[a + 1] >> 4],
                    c += p[(15 & b[a + 1]) << 2 | b[a + 2] >> 6],
                    c += p[63 & b[a + 2]];
                    return 2 === b.length % 3 ? c = c.substring(0, c.length - 1) + "=": 1 === b.length % 3 && (c = c.substring(0, c.length - 2) + "=="),
                    c
                }
                var p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
                r = /^~~local_forage_type~([^~]+)~/;
                return {
                    serialize: function(a, b) {
                        var c = "";
                        if (a && (c = a.toString()), a && ("[object ArrayBuffer]" === a.toString() || a.buffer && "[object ArrayBuffer]" === a.buffer.toString())) {
                            var d, e = "__lfsc__:";
                            a instanceof ArrayBuffer ? (d = a, e += "arbf") : (d = a.buffer, "[object Int8Array]" === c ? e += "si08": "[object Uint8Array]" === c ? e += "ui08": "[object Uint8ClampedArray]" === c ? e += "uic8": "[object Int16Array]" === c ? e += "si16": "[object Uint16Array]" === c ? e += "ur16": "[object Int32Array]" === c ? e += "si32": "[object Uint32Array]" === c ? e += "ui32": "[object Float32Array]" === c ? e += "fl32": "[object Float64Array]" === c ? e += "fl64": b(Error("Failed to get type for BinaryArray")));
                            b(e + h(d))
                        } else if ("[object Blob]" === c) c = new FileReader,
                        c.onload = function() {
                            var c = "~~local_forage_type~" + a.type + "~" + h(this.result);
                            b("__lfsc__:blob" + c)
                        },
                        c.readAsArrayBuffer(a);
                        else try {
                            b(JSON.stringify(a))
                        } catch(f) {
                            console.error("Couldn't convert value into a JSON string: ", a),
                            b(null, f)
                        }
                    },
                    ze: function(a) {
                        if ("__lfsc__:" !== a.substring(0, 9)) return JSON.parse(a);
                        var b, c = a.substring(13);
                        a = a.substring(9, 13);
                        if ("blob" === a && r.test(c)) {
                            var g = c.match(r);
                            b = g[1];
                            c = c.substring(g[0].length)
                        }
                        c = f(c);
                        switch (a) {
                        case "arbf":
                            return c;
                        case "blob":
                            var e;
                            c = [c];
                            b = {
                                type: b
                            };
                            c = c || [];
                            b = b || {};
                            try {
                                e = new Blob(c, b)
                            } catch(h) {
                                if ("TypeError" !== h.name) throw h;
                                e = new(d.BlobBuilder || d.te || d.ei || d.WebKitBlobBuilder);
                                for (a = 0; a < c.length; a += 1) e.append(c[a]);
                                e = e.getBlob(b.type)
                            }
                            return e;
                        case "si08":
                            return new Int8Array(c);
                        case "ui08":
                            return new Uint8Array(c);
                        case "uic8":
                            return new Uint8ClampedArray(c);
                        case "si16":
                            return new Int16Array(c);
                        case "ur16":
                            return new Uint16Array(c);
                        case "si32":
                            return new Int32Array(c);
                        case "ui32":
                            return new Uint32Array(c);
                        case "fl32":
                            return new Float32Array(c);
                        case "fl64":
                            return new Float64Array(c);
                        default:
                            throw Error("Unkown type: " + a);
                        }
                    },
                    xz: f,
                    Dv: h
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f, d) {
            f.ne = !0;
            f["default"] = function(f) {
                function h(a) {
                    var b = this,
                    c = {
                        db: null
                    };
                    if (a) for (var e in a) c[e] = "string" != typeof a[e] ? a[e].toString() : a[e];
                    var g = new Promise(function(a, d) {
                        try {
                            c.db = w(c.name, String(c.version), c.description, c.size)
                        } catch(e) {
                            return d(e)
                        }
                        c.db.transaction(function(e) {
                            e.executeSql("CREATE TABLE IF NOT EXISTS " + c.B + " (id INTEGER PRIMARY KEY, key unique, value)", [],
                            function() {
                                b.A = c;
                                a()
                            },
                            function(a, b) {
                                d(b)
                            })
                        })
                    });
                    return (new Promise(function(a) {
                        a(d(3))
                    })).then(function(a) {
                        return c.Bc = a,
                        g
                    })
                }
                function p(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT * FROM " + e.B + " WHERE key = ? LIMIT 1", [a],
                                function(a, c) {
                                    var d = c.rows.length ? c.rows.item(0).value: null;
                                    d && (d = e.Bc.ze(d));
                                    b(d)
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function r(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT * FROM " + e.B, [],
                                function(c, d) {
                                    for (var g = d.rows,
                                    f = g.length,
                                    h = 0; f > h; h++) {
                                        var m = g.item(h),
                                        k = m.value;
                                        if (k && (k = e.Bc.ze(k)), k = a(k, m.key, h + 1), void 0 !== k) return void b(k)
                                    }
                                    b()
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function a(a, b, c) {
                    var d = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var e = new Promise(function(c, e) {
                        d.ready().then(function() {
                            void 0 === b && (b = null);
                            var g = b,
                            f = d.A;
                            f.Bc.serialize(b,
                            function(b, d) {
                                d ? e(d) : f.db.transaction(function(d) {
                                    d.executeSql("INSERT OR REPLACE INTO " + f.B + " (key, value) VALUES (?, ?)", [a, b],
                                    function() {
                                        c(g)
                                    },
                                    function(a, b) {
                                        e(b)
                                    })
                                },
                                function(a) {
                                    a.code === a.QUOTA_ERR && e(a)
                                })
                            })
                        })["catch"](e)
                    });
                    return l(e, c),
                    e
                }
                function b(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("DELETE FROM " + e.B + " WHERE key = ?", [a],
                                function() {
                                    b()
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function c(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("DELETE FROM " + d.B, [],
                                function() {
                                    a()
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function g(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("SELECT COUNT(key) as c FROM " + d.B, [],
                                function(b, c) {
                                    var d = c.rows.item(0).Rf;
                                    a(d)
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function e(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT key FROM " + e.B + " WHERE id = ? LIMIT 1", [a + 1],
                                function(a, c) {
                                    var d = c.rows.length ? c.rows.item(0).key: null;
                                    b(d)
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function k(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("SELECT key FROM " + d.B, [],
                                function(b, c) {
                                    for (var d = [], e = 0; e < c.rows.length; e++) d.push(c.rows.item(e).key);
                                    a(d)
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function l(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var w = f.openDatabase;
                if (w) return {
                    Ad: "webSQLStorage",
                    Nf: h,
                    Ni: r,
                    getItem: p,
                    setItem: a,
                    removeItem: b,
                    clear: c,
                    length: g,
                    key: e,
                    keys: k
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        }])
    };
    "object" == typeof exports && "object" == typeof module ? module.kb = xc() : "function" == typeof define && define.xv ? define([], xc) : "object" == typeof exports ? exports.localforage = xc() : this.localforage = xc()
} catch(yc) {
    wc = !0
}
function zc(h) {
    this.b = h
} (function() {
    function h(a) {
        a.b.trigger(zc.prototype.j.cf, a)
    }
    function f() {}
    function d() {}
    function n() {}
    var q = "",
    p = "",
    r = [],
    a = "",
    b = "undefined" !== typeof window.is_scirra_arcade;
    b && (a = "sa" + window.scirra_arcade_id + "_");
    var c = zc.prototype;
    c.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    c.za.prototype.O = function() {};
    c.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    var g = c.ja.prototype;
    g.O = function() {
        this.Wn = this.Xn = 0
    };
    g.xg = function() {};
    g.Lb = function() {
        return {}
    };
    g.kc = function() {};
    f.prototype.fu = function(a) {
        return q === a
    };
    f.prototype.Wt = function() {
        return ! 0
    };
    f.prototype.bp = function(a) {
        return q === a
    };
    f.prototype.Vt = function() {
        return ! 0
    };
    f.prototype.eu = function(a) {
        return q === a
    };
    f.prototype.Yt = function() {
        return ! 0
    };
    f.prototype.cf = function() {
        return ! 0
    };
    f.prototype.$o = function(a) {
        return q === a
    };
    f.prototype.cp = function(a) {
        return q === a
    };
    f.prototype.St = function() {
        return ! 0
    };
    f.prototype.Rt = function() {
        return ! 0
    };
    c.j = new f;
    d.prototype.Ou = function(b, c) {
        if (wc) h(this);
        else {
            var d = a + b;
            this.Xn++;
            var g = this;
            localforage.setItem(d, c,
            function(a, c) {
                g.Xn--;
                a ? g.b.trigger(zc.prototype.j.cf, g) : (q = b, p = c, g.b.trigger(zc.prototype.j.Wt, g), g.b.trigger(zc.prototype.j.fu, g), p = q = "");
                0 === g.Xn && g.b.trigger(zc.prototype.j.St, g)
            })
        }
    };
    d.prototype.ot = function(b) {
        if (wc) h(this);
        else {
            var c = a + b;
            this.Wn++;
            var d = this;
            localforage.getItem(c,
            function(a, c) {
                d.Wn--;
                if (a) d.b.trigger(zc.prototype.j.cf, d);
                else {
                    q = b;
                    p = c;
                    if ("undefined" === typeof p || null === p) p = "";
                    d.b.trigger(zc.prototype.j.Vt, d);
                    d.b.trigger(zc.prototype.j.bp, d);
                    p = q = ""
                }
                0 === d.Wn && d.b.trigger(zc.prototype.j.Rt, d)
            })
        }
    };
    d.prototype.Vs = function(b) {
        if (wc) h(this);
        else {
            var c = this;
            localforage.getItem(a + b,
            function(a, d) {
                a ? c.b.trigger(zc.prototype.j.cf, c) : (q = b, null === d ? (p = "", c.b.trigger(zc.prototype.j.cp, c)) : (p = d, c.b.trigger(zc.prototype.j.$o, c)), p = q = "")
            })
        }
    };
    d.prototype.Ys = function() {
        if (wc) h(this);
        else if (!b) {
            var a = this;
            localforage.clear(function(b) {
                b ? a.b.trigger(zc.prototype.j.cf, a) : (p = q = "", A(r), a.b.trigger(zc.prototype.j.Yt, a))
            })
        }
    };
    c.u = new d;
    n.prototype.Ht = function(a) {
        a.rj(p)
    };
    c.I = new n
})();
function Ac(h) {
    this.b = h
} (function() {
    function h() {}
    var f = Ac.prototype;
    f.za = function(d) {
        this.Ca = d;
        this.b = d.b
    };
    f.za.prototype.O = function() {};
    f.ja = function(d) {
        this.type = d;
        this.b = d.b
    };
    var d = f.ja.prototype;
    d.O = function() {
        this.lm = {}
    };
    d.Lb = function() {
        return {
            tims: this.lm
        }
    };
    d.kc = function(d) {
        this.lm = d.tims
    };
    f.j = new
    function() {};
    f.u = new h;
    h.prototype.qp = function(d) {
        this.lm[d] = (new Date).getTime()
    };
    f.I = new
    function() {}
})();
wc = !1;
try { !
    function() {
        var h, f, d; !
        function() {
            var n = {},
            q = {};
            h = function(d, f, a) {
                n[d] = {
                    Im: f,
                    um: a
                }
            };
            d = f = function(h) {
                function r(a) {
                    if ("." !== a.charAt(0)) return a;
                    a = a.split("/");
                    for (var b = h.split("/").slice(0, -1), c = 0, d = a.length; d > c; c++) {
                        var e = a[c];
                        ".." === e ? b.pop() : "." !== e && b.push(e)
                    }
                    return b.join("/")
                }
                if (d.qv = n, q[h]) return q[h];
                if (q[h] = {},
                !n[h]) throw Error("Could not find module " + h);
                for (var a, b = n[h], c = b.Im, b = b.um, g = [], e = 0, k = c.length; k > e; e++)"exports" === c[e] ? g.push(a = {}) : g.push(f(r(c[e])));
                c = b.apply(this, g);
                return q[h] = a || c
            }
        } ();
        h("promise/all", ["./utils", "exports"],
        function(d, f) {
            var h = d.isArray,
            r = d.isFunction;
            f.all = function(a) {
                if (!h(a)) throw new TypeError("You must pass an array to all.");
                return new this(function(b, c) {
                    function d(a) {
                        return function(c) {
                            f[a] = c;
                            0 === --h && b(f)
                        }
                    }
                    var e, f = [],
                    h = a.length;
                    0 === h && b([]);
                    for (var n = 0; n < a.length; n++)(e = a[n]) && r(e.then) ? e.then(d(n), c) : (f[n] = e, 0 === --h && b(f))
                })
            }
        });
        h("promise/asap", ["exports"],
        function(d) {
            function f() {
                return function() {
                    process.uy(a)
                }
            }
            function h() {
                var b = 0,
                c = new g(a),
                d = document.createTextNode("");
                return c.observe(d, {
                    characterData: !0
                }),
                function() {
                    d.data = b = ++b % 2
                }
            }
            function r() {
                return function() {
                    e.setTimeout(a, 1)
                }
            }
            function a() {
                for (var a = 0; a < k.length; a++) {
                    var b = k[a]; (0, b[0])(b[1])
                }
                k = []
            }
            var b, c = "undefined" != typeof window ? window: {},
            g = c.MutationObserver || c.WebKitMutationObserver,
            e = "undefined" != typeof global ? global: void 0 === this ? window: this,
            k = [];
            b = "undefined" != typeof process && "[object process]" === {}.toString.call(process) ? f() : g ? h() : r();
            d.qm = function(a, c) {
                1 === k.push([a, c]) && b()
            }
        });
        h("promise/config", ["exports"],
        function(d) {
            var f = {
                Ox: !1
            };
            d.$h = f;
            d.Bm = function(d, h) {
                return 2 !== arguments.length ? f[d] : void(f[d] = h)
            }
        });
        h("promise/polyfill", ["./promise", "./utils", "exports"],
        function(d, f, h) {
            var r = d.Promise,
            a = f.isFunction;
            h.ao = function() {
                var b;
                b = "undefined" != typeof global ? global: "undefined" != typeof window && window.document ? window: self;
                "Promise" in b && "resolve" in b.Promise && "reject" in b.Promise && "all" in b.Promise && "race" in b.Promise &&
                function() {
                    var c;
                    return new b.Promise(function(a) {
                        c = a
                    }),
                    a(c)
                } () || (b.Promise = r)
            }
        });
        h("promise/promise", "./config ./utils ./all ./race ./resolve ./reject ./asap exports".split(" "),
        function(d, f, h, r, a, b, c, g) {
            function e(a) {
                if (!t(a)) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
                if (! (this instanceof e)) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
                this.pe = [];
                k(a, this)
            }
            function k(a, b) {
                function c(a) {
                    m(b, a)
                }
                function d(a) {
                    I(b, a)
                }
                try {
                    a(c, d)
                } catch(e) {
                    d(e)
                }
            }
            function l(a, b, c, d) {
                var e, g, f, h, k = t(c);
                if (k) try {
                    e = c(d),
                    f = !0
                } catch(l) {
                    h = !0,
                    g = l
                } else e = d,
                f = !0;
                P(b, e) || (k && f ? m(b, e) : h ? I(b, g) : a === S ? m(b, e) : a === Q && I(b, e))
            }
            function w(a, b, c, d) {
                a = a.pe;
                var e = a.length;
                a[e] = b;
                a[e + S] = c;
                a[e + Q] = d
            }
            function M(a, b) {
                for (var c, d, e = a.pe,
                g = a.oe,
                f = 0; f < e.length; f += 3) c = e[f],
                d = e[f + b],
                l(b, c, d, g);
                a.pe = null
            }
            function P(a, b) {
                var c, d = null;
                try {
                    if (a === b) throw new TypeError("A promises callback cannot return that same promise.");
                    if (C(b) && (d = b.then, t(d))) return d.call(b,
                    function(d) {
                        return c ? !0 : (c = !0, void(b !== d ? m(a, d) : u(a, d)))
                    },
                    function(b) {
                        return c ? !0 : (c = !0, void I(a, b))
                    }),
                    !0
                } catch(e) {
                    return c ? !0 : (I(a, e), !0)
                }
                return ! 1
            }
            function m(a, b) {
                a === b ? u(a, b) : P(a, b) || u(a, b)
            }
            function u(a, b) {
                a.Fb === F && (a.Fb = J, a.oe = b, H.async(T, a))
            }
            function I(a, b) {
                a.Fb === F && (a.Fb = J, a.oe = b, H.async(v, a))
            }
            function T(a) {
                M(a, a.Fb = S)
            }
            function v(a) {
                M(a, a.Fb = Q)
            }
            var H = d.$h,
            C = (d.Bm, f.Kn),
            t = f.isFunction;
            d = (f.now, h.all);
            r = r.race;
            a = a.resolve;
            b = b.reject;
            H.async = c.qm;
            var F = void 0,
            J = 0,
            S = 1,
            Q = 2;
            e.prototype = {
                constructor: e,
                Fb: void 0,
                oe: void 0,
                pe: void 0,
                then: function(a, b) {
                    var c = this,
                    d = new this.constructor(function() {});
                    if (this.Fb) {
                        var e = arguments;
                        H.async(function() {
                            l(c.Fb, d, e[c.Fb - 1], c.oe)
                        })
                    } else w(this, d, a, b);
                    return d
                },
                "catch": function(a) {
                    return this.then(null, a)
                }
            };
            e.all = d;
            e.race = r;
            e.resolve = a;
            e.reject = b;
            g.Promise = e
        });
        h("promise/race", ["./utils", "exports"],
        function(d, f) {
            var h = d.isArray;
            f.race = function(d) {
                if (!h(d)) throw new TypeError("You must pass an array to race.");
                return new this(function(a, b) {
                    for (var c, g = 0; g < d.length; g++)(c = d[g]) && "function" == typeof c.then ? c.then(a, b) : a(c)
                })
            }
        });
        h("promise/reject", ["exports"],
        function(d) {
            d.reject = function(d) {
                return new this(function(f, h) {
                    h(d)
                })
            }
        });
        h("promise/resolve", ["exports"],
        function(d) {
            d.resolve = function(d) {
                return d && "object" == typeof d && d.constructor === this ? d: new this(function(f) {
                    f(d)
                })
            }
        });
        h("promise/utils", ["exports"],
        function(d) {
            function f(d) {
                return "function" == typeof d
            }
            var h = Date.now ||
            function() {
                return (new Date).getTime()
            };
            d.Kn = function(d) {
                return f(d) || "object" == typeof d && null !== d
            };
            d.isFunction = f;
            d.isArray = function(d) {
                return "[object Array]" === Object.prototype.toString.call(d)
            };
            d.now = h
        });
        f("promise/polyfill").ao()
    } ();
    var Bc = function() {
        return function(h) {
            function f(n) {
                if (d[n]) return d[n].kb;
                var q = d[n] = {
                    kb: {},
                    id: n,
                    loaded: !1
                };
                return h[n].call(q.kb, q, q.kb, f),
                q.loaded = !0,
                q.kb
            }
            var d = {};
            return f.te = h,
            f.Rf = d,
            f.vh = "",
            f(0)
        } ([function(h, f, d) {
            f.ne = !0;
            var n = function(f) {
                function h(a, b) {
                    a[b] = function() {
                        var c = arguments;
                        return a.ready().then(function() {
                            return a[b].apply(a, c)
                        })
                    }
                }
                function n() {
                    for (var a = 1; a < arguments.length; a++) {
                        var b = arguments[a];
                        if (b) for (var c in b) b.hasOwnProperty(c) && (l(b[c]) ? arguments[0][c] = b[c].slice() : arguments[0][c] = b[c])
                    }
                    return arguments[0]
                }
                function a(a) {
                    for (var b in c) if (c.hasOwnProperty(b) && c[b] === a) return ! 0;
                    return ! 1
                }
                var b = {},
                c = {
                    xd: "asyncStorage",
                    yd: "localStorageWrapper",
                    zd: "webSQLStorage"
                },
                g = "clear getItem iterate key keys length removeItem setItem".split(" "),
                e = {
                    description: "",
                    Qc: [c.xd, c.zd, c.yd].slice(),
                    name: "localforage",
                    size: 4980736,
                    B: "keyvaluepairs",
                    version: 1
                },
                k = function(a) {
                    var b = {},
                    d;
                    try {
                        var e = e || a.indexedDB || a.webkitIndexedDB || a.mozIndexedDB || a.Oi || a.msIndexedDB;
                        d = "undefined" != typeof a.openDatabase && a.navigator && a.navigator.userAgent && /Safari/.test(a.navigator.userAgent) && !/Chrome/.test(a.navigator.userAgent) ? !1 : e && "function" == typeof e.open && "undefined" != typeof a.IDBKeyRange
                    } catch(g) {
                        d = !1
                    }
                    b[c.xd] = !!d;
                    var f;
                    try {
                        f = a.openDatabase
                    } catch(h) {
                        f = !1
                    }
                    b[c.zd] = !!f;
                    var k;
                    try {
                        k = a.localStorage && "setItem" in a.localStorage && a.localStorage.setItem
                    } catch(l) {
                        k = !1
                    }
                    return b[c.yd] = !!k,
                    b
                } (f),
                l = Array.isArray ||
                function(a) {
                    return "[object Array]" === Object.prototype.toString.call(a)
                };
                return new(function() {
                    function f(a) {
                        if (! (this instanceof f)) throw new TypeError("Cannot call a class as a function");
                        this.xd = c.xd;
                        this.yd = c.yd;
                        this.zd = c.zd;
                        this.Lf = n({},
                        e);
                        this.tc = n({},
                        this.Lf, a);
                        this.Th = this.hb = null;
                        this.cc = !1;
                        this.A = null;
                        this.Uh();
                        this.oj(this.tc.Qc)
                    }
                    return f.prototype.$h = function(a) {
                        if ("object" == typeof a) {
                            if (this.cc) return Error("Can't call config() after localforage has been used.");
                            for (var b in a)"storeName" === b && (a[b] = a[b].replace(/\W/g, "_")),
                            this.tc[b] = a[b];
                            return "driver" in a && a.Qc && this.oj(this.tc.Qc),
                            !0
                        }
                        return "string" == typeof a ? this.tc[a] : this.tc
                    },
                    f.prototype.Qc = function() {
                        return this.Ad || null
                    },
                    f.prototype.pi = function(c, e, g) {
                        var f = this,
                        h = function() {
                            if (a(c)) switch (c) {
                            case f.xd:
                                return new Promise(function(a) {
                                    a(d(1))
                                });
                            case f.yd:
                                return new Promise(function(a) {
                                    a(d(2))
                                });
                            case f.zd:
                                return new Promise(function(a) {
                                    a(d(4))
                                })
                            } else if (b[c]) return Promise.resolve(b[c]);
                            return Promise.reject(Error("Driver not found."))
                        } ();
                        return h.then(e, g),
                        h
                    },
                    f.prototype.ready = function(a) {
                        var b = this,
                        c = b.hb.then(function() {
                            return null === b.cc && (b.cc = b.Th()),
                            b.cc
                        });
                        return c.then(a, a),
                        c
                    },
                    f.prototype.oj = function(a, b, c) {
                        function d() {
                            g.tc.Qc = g.Qc()
                        }
                        function e(a) {
                            return function() {
                                function b() {
                                    for (; c < a.length;) {
                                        var e = a[c];
                                        return c++,
                                        g.A = null,
                                        g.cc = null,
                                        g.pi(e).then(function(a) {
                                            return g.jm(a),
                                            d(),
                                            g.cc = g.Nf(g.tc),
                                            g.cc
                                        })["catch"](b)
                                    }
                                    d();
                                    return g.hb = Promise.reject(Error("No available storage method found.")),
                                    g.hb
                                }
                                var c = 0;
                                return b()
                            }
                        }
                        var g = this;
                        l(a) || (a = [a]);
                        var f = this.km(a);
                        return this.hb = (null !== this.hb ? this.hb["catch"](function() {
                            return Promise.resolve()
                        }) : Promise.resolve()).then(function() {
                            var a = f[0];
                            return g.A = null,
                            g.cc = null,
                            g.pi(a).then(function(a) {
                                g.Ad = a.Ad;
                                d();
                                g.Uh();
                                g.Th = e(f)
                            })
                        })["catch"](function() {
                            d();
                            return g.hb = Promise.reject(Error("No available storage method found.")),
                            g.hb
                        }),
                        this.hb.then(b, c),
                        this.hb
                    },
                    f.prototype.supports = function(a) {
                        return !! k[a]
                    },
                    f.prototype.jm = function(a) {
                        n(this, a)
                    },
                    f.prototype.km = function(a) {
                        for (var b = [], c = 0, d = a.length; d > c; c++) {
                            var e = a[c];
                            this.supports(e) && b.push(e)
                        }
                        return b
                    },
                    f.prototype.Uh = function() {
                        for (var a = 0; a < g.length; a++) h(this, g[a])
                    },
                    f.prototype.fk = function(a) {
                        return new f(a)
                    },
                    f
                } ())
            } ("undefined" != typeof window ? window: self);
            f["default"] = n;
            h.kb = f["default"]
        },
        function(h, f) {
            f.ne = !0;
            f["default"] = function(d) {
                function f(a, b) {
                    a = a || [];
                    b = b || {};
                    try {
                        return new Blob(a, b)
                    } catch(c) {
                        if ("TypeError" !== c.name) throw c;
                        for (var e = new(d.BlobBuilder || d.te || d.ei || d.WebKitBlobBuilder), g = 0; g < a.length; g += 1) e.append(a[g]);
                        return e.getBlob(b.type)
                    }
                }
                function h(a) {
                    return new Promise(function(b, c) {
                        var d = new XMLHttpRequest;
                        d.open("GET", a);
                        d.withCredentials = !0;
                        d.responseType = "arraybuffer";
                        d.onreadystatechange = function() {
                            return 4 === d.readyState ? 200 === d.status ? b({
                                response: d.response,
                                type: d.getResponseHeader("Content-Type")
                            }) : void c({
                                status: d.status,
                                response: d.response
                            }) : void 0
                        };
                        d.send()
                    })
                }
                function p(a) {
                    return (new Promise(function(b, c) {
                        var d = f([""], {
                            type: "image/png"
                        }),
                        e = a.transaction([F], "readwrite");
                        e.objectStore(F).put(d, "key");
                        e.oncomplete = function() {
                            var d = a.transaction([F], "readwrite").objectStore(F).get("key");
                            d.onerror = c;
                            d.onsuccess = function(a) {
                                var c = URL.createObjectURL(a.target.result);
                                h(c).then(function(a) {
                                    b(!(!a || "image/png" !== a.type))
                                },
                                function() {
                                    b(!1)
                                }).then(function() {
                                    URL.revokeObjectURL(c)
                                })
                            }
                        };
                        e.onerror = e.onabort = c
                    }))["catch"](function() {
                        return ! 1
                    })
                }
                function r(a) {
                    return "boolean" == typeof C ? Promise.resolve(C) : p(a).then(function(a) {
                        return C = a
                    })
                }
                function a(a) {
                    return new Promise(function(b, c) {
                        var d = new FileReader;
                        d.onerror = c;
                        d.onloadend = function(c) {
                            b({
                                Sh: !0,
                                data: btoa(c.target.result || ""),
                                type: a.type
                            })
                        };
                        d.readAsBinaryString(a)
                    })
                }
                function b(a) {
                    for (var b = atob(a.data), c = b.length, d = new ArrayBuffer(c), e = new Uint8Array(d), g = 0; c > g; g++) e[g] = b.charCodeAt(g);
                    return f([d], {
                        type: a.type
                    })
                }
                function c(a) {
                    var b = this,
                    c = b.Mf().then(function() {
                        var a = t[b.A.name];
                        return a && a.Pc ? a.Pc: void 0
                    });
                    return c.then(a, a),
                    c
                }
                function g(a) {
                    a = t[a.name];
                    var b = {};
                    b.promise = new Promise(function(a) {
                        b.resolve = a
                    });
                    a.fi.push(b);
                    a.Pc ? a.Pc = a.Pc.then(function() {
                        return b.promise
                    }) : a.Pc = b.promise
                }
                function e(a) {
                    function b() {
                        return Promise.resolve()
                    }
                    var e = this,
                    g = {
                        db: null
                    };
                    if (a) for (var f in a) g[f] = a[f];
                    t || (t = {});
                    var h = t[g.name];
                    h || (h = {
                        Fe: [],
                        db: null,
                        Pc: null,
                        fi: []
                    },
                    t[g.name] = h);
                    h.Fe.push(e);
                    e.Mf || (e.Mf = e.ready, e.ready = c);
                    a = [];
                    for (f = 0; f < h.Fe.length; f++) {
                        var m = h.Fe[f];
                        m !== e && a.push(m.Mf()["catch"](b))
                    }
                    var l = h.Fe.slice(0);
                    return Promise.all(a).then(function() {
                        return g.db = h.db,
                        k(g, !1)
                    }).then(function(a) {
                        g.db = a;
                        var b;
                        b = e.Lf.version;
                        if (g.db) {
                            var c = !g.db.objectStoreNames.contains(g.B),
                            f = g.version > g.db.version; (g.version < g.db.version && (g.version !== b && d.console.warn('The database "' + g.name + "\" can't be downgraded from version " + g.db.version + " to version " + g.version + "."), g.version = g.db.version), f || c) ? (c && (b = g.db.version + 1, b > g.version && (g.version = b)), b = !0) : b = !1
                        } else b = !0;
                        return b ? k(g, !0) : a
                    }).then(function(a) {
                        g.db = h.db = a;
                        e.A = g;
                        for (a = 0; a < l.length; a++) {
                            var b = l[a];
                            b !== e && (b.A.db = g.db, b.A.version = g.version)
                        }
                    })
                }
                function k(a, b) {
                    return new Promise(function(c, e) {
                        if (a.db) {
                            if (!b) return c(a.db);
                            g(a);
                            a.db.close()
                        }
                        var f = [a.name];
                        b && f.push(a.version);
                        var h = H.open.apply(H, f);
                        b && (h.onupgradeneeded = function(b) {
                            var c = h.result;
                            try {
                                c.createObjectStore(a.B),
                                1 >= b.oldVersion && c.createObjectStore(F)
                            } catch(e) {
                                if ("ConstraintError" !== e.name) throw e;
                                d.console.warn('The database "' + a.name + '" has been upgraded from version ' + b.oldVersion + " to version " + b.newVersion + ', but the storage "' + a.B + '" already exists.')
                            }
                        });
                        h.onerror = function() {
                            e(h.error)
                        };
                        h.onsuccess = function() {
                            c(h.result);
                            var b = t[a.name].fi.pop();
                            b && b.resolve()
                        }
                    })
                }
                function l(a, c) {
                    var e = this;
                    "string" != typeof a && (d.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var g = new Promise(function(c, d) {
                        e.ready().then(function() {
                            var g = e.A,
                            f = g.db.transaction(g.B, "readonly").objectStore(g.B).get(a);
                            f.onsuccess = function() {
                                var a = f.result;
                                void 0 === a && (a = null);
                                a && a.Sh && (a = b(a));
                                c(a)
                            };
                            f.onerror = function() {
                                d(f.error)
                            }
                        })["catch"](d)
                    });
                    return v(g, c),
                    g
                }
                function w(a, c) {
                    var d = this,
                    e = new Promise(function(c, e) {
                        d.ready().then(function() {
                            var g = d.A,
                            f = g.db.transaction(g.B, "readonly").objectStore(g.B).openCursor(),
                            h = 1;
                            f.onsuccess = function() {
                                var d = f.result;
                                if (d) {
                                    var e = d.value;
                                    e && e.Sh && (e = b(e));
                                    e = a(e, d.key, h++);
                                    void 0 !== e ? c(e) : d["continue"]()
                                } else c()
                            };
                            f.onerror = function() {
                                e(f.error)
                            }
                        })["catch"](e)
                    });
                    return v(e, c),
                    e
                }
                function M(b, c, e) {
                    var g = this;
                    "string" != typeof b && (d.console.warn(b + " used as a key, but it is not a string."), b = String(b));
                    var f = new Promise(function(d, e) {
                        var f;
                        g.ready().then(function() {
                            return f = g.A,
                            c instanceof Blob ? r(f.db).then(function(b) {
                                return b ? c: a(c)
                            }) : c
                        }).then(function(a) {
                            var c = f.db.transaction(f.B, "readwrite"),
                            g = c.objectStore(f.B);
                            null === a && (a = void 0);
                            c.oncomplete = function() {
                                void 0 === a && (a = null);
                                d(a)
                            };
                            c.onabort = c.onerror = function() {
                                e(h.error ? h.error: h.transaction.error)
                            };
                            var h = g.put(a, b)
                        })["catch"](e)
                    });
                    return v(f, e),
                    f
                }
                function P(a, b) {
                    var c = this;
                    "string" != typeof a && (d.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var e = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A,
                            g = e.db.transaction(e.B, "readwrite"),
                            f = g.objectStore(e.B)["delete"](a);
                            g.oncomplete = function() {
                                b()
                            };
                            g.onerror = function() {
                                d(f.error)
                            };
                            g.onabort = function() {
                                d(f.error ? f.error: f.transaction.error)
                            }
                        })["catch"](d)
                    });
                    return v(e, b),
                    e
                }
                function m(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readwrite"),
                            g = e.objectStore(d.B).clear();
                            e.oncomplete = function() {
                                a()
                            };
                            e.onabort = e.onerror = function() {
                                c(g.error ? g.error: g.transaction.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function u(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readonly").objectStore(d.B).count();
                            e.onsuccess = function() {
                                a(e.result)
                            };
                            e.onerror = function() {
                                c(e.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function I(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        return 0 > a ? void b(null) : void c.ready().then(function() {
                            var e = c.A,
                            g = !1,
                            f = e.db.transaction(e.B, "readonly").objectStore(e.B).openCursor();
                            f.onsuccess = function() {
                                var c = f.result;
                                return c ? void(0 === a ? b(c.key) : g ? b(c.key) : (g = !0, c.advance(a))) : void b(null)
                            };
                            f.onerror = function() {
                                d(f.error)
                            }
                        })["catch"](d)
                    });
                    return v(d, b),
                    d
                }
                function T(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A,
                            e = d.db.transaction(d.B, "readonly").objectStore(d.B).openCursor(),
                            g = [];
                            e.onsuccess = function() {
                                var b = e.result;
                                return b ? (g.push(b.key), void b["continue"]()) : void a(g)
                            };
                            e.onerror = function() {
                                c(e.error)
                            }
                        })["catch"](c)
                    });
                    return v(c, a),
                    c
                }
                function v(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var H = H || d.indexedDB || d.webkitIndexedDB || d.mozIndexedDB || d.Oi || d.msIndexedDB;
                if (H) {
                    var C, t, F = "local-forage-detect-blob-support";
                    return {
                        Ad: "asyncStorage",
                        Nf: e,
                        Ni: w,
                        getItem: l,
                        setItem: M,
                        removeItem: P,
                        clear: m,
                        length: u,
                        key: I,
                        keys: T
                    }
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f, d) {
            f.ne = !0;
            f["default"] = function(f) {
                function h(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var p = null;
                try {
                    if (! (f.localStorage && "setItem" in f.localStorage)) return;
                    p = f.localStorage
                } catch(r) {
                    return
                }
                return {
                    Ad: "localStorageWrapper",
                    Nf: function(a) {
                        var b = {};
                        if (a) for (var c in a) b[c] = a[c];
                        return b.nb = b.name + "/",
                        b.B !== this.Lf.B && (b.nb += b.B + "/"),
                        this.A = b,
                        (new Promise(function(a) {
                            a(d(3))
                        })).then(function(a) {
                            return b.Bc = a,
                            Promise.resolve()
                        })
                    },
                    Ni: function(a, b) {
                        var c = this,
                        d = c.ready().then(function() {
                            for (var b = c.A,
                            d = b.nb,
                            g = d.length,
                            f = p.length,
                            h = 1,
                            n = 0; f > n; n++) {
                                var m = p.key(n);
                                if (0 === m.indexOf(d)) {
                                    var q = p.getItem(m);
                                    if (q && (q = b.Bc.ze(q)), q = a(q, m.substring(g), h++), void 0 !== q) return q
                                }
                            }
                        });
                        return h(d, b),
                        d
                    },
                    getItem: function(a, b) {
                        var c = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var d = c.ready().then(function() {
                            var b = c.A,
                            d = p.getItem(b.nb + a);
                            return d && (d = b.Bc.ze(d)),
                            d
                        });
                        return h(d, b),
                        d
                    },
                    setItem: function(a, b, c) {
                        var d = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var e = d.ready().then(function() {
                            void 0 === b && (b = null);
                            var c = b;
                            return new Promise(function(e, f) {
                                var h = d.A;
                                h.Bc.serialize(b,
                                function(b, d) {
                                    if (d) f(d);
                                    else try {
                                        p.setItem(h.nb + a, b),
                                        e(c)
                                    } catch(g) {
                                        "QuotaExceededError" !== g.name && "NS_ERROR_DOM_QUOTA_REACHED" !== g.name || f(g),
                                        f(g)
                                    }
                                })
                            })
                        });
                        return h(e, c),
                        e
                    },
                    removeItem: function(a, b) {
                        var c = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var d = c.ready().then(function() {
                            p.removeItem(c.A.nb + a)
                        });
                        return h(d, b),
                        d
                    },
                    clear: function(a) {
                        var b = this,
                        c = b.ready().then(function() {
                            for (var a = b.A.nb,
                            c = p.length - 1; 0 <= c; c--) {
                                var d = p.key(c);
                                0 === d.indexOf(a) && p.removeItem(d)
                            }
                        });
                        return h(c, a),
                        c
                    },
                    length: function(a) {
                        var b = this.keys().then(function(a) {
                            return a.length
                        });
                        return h(b, a),
                        b
                    },
                    key: function(a, b) {
                        var c = this,
                        d = c.ready().then(function() {
                            var b, d = c.A;
                            try {
                                b = p.key(a)
                            } catch(g) {
                                b = null
                            }
                            return b && (b = b.substring(d.nb.length)),
                            b
                        });
                        return h(d, b),
                        d
                    },
                    keys: function(a) {
                        var b = this,
                        c = b.ready().then(function() {
                            for (var a = b.A,
                            c = p.length,
                            d = [], f = 0; c > f; f++) 0 === p.key(f).indexOf(a.nb) && d.push(p.key(f).substring(a.nb.length));
                            return d
                        });
                        return h(c, a),
                        c
                    }
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f) {
            f.ne = !0;
            f["default"] = function(d) {
                function f(a) {
                    var b, c, d, e, h;
                    b = .75 * a.length;
                    var l = a.length,
                    n = 0;
                    "=" === a[a.length - 1] && (b--, "=" === a[a.length - 2] && b--);
                    var q = new ArrayBuffer(b),
                    r = new Uint8Array(q);
                    for (b = 0; l > b; b += 4) c = p.indexOf(a[b]),
                    d = p.indexOf(a[b + 1]),
                    e = p.indexOf(a[b + 2]),
                    h = p.indexOf(a[b + 3]),
                    r[n++] = c << 2 | d >> 4,
                    r[n++] = (15 & d) << 4 | e >> 2,
                    r[n++] = (3 & e) << 6 | 63 & h;
                    return q
                }
                function h(a) {
                    var b = new Uint8Array(a),
                    c = "";
                    for (a = 0; a < b.length; a += 3) c += p[b[a] >> 2],
                    c += p[(3 & b[a]) << 4 | b[a + 1] >> 4],
                    c += p[(15 & b[a + 1]) << 2 | b[a + 2] >> 6],
                    c += p[63 & b[a + 2]];
                    return 2 === b.length % 3 ? c = c.substring(0, c.length - 1) + "=": 1 === b.length % 3 && (c = c.substring(0, c.length - 2) + "=="),
                    c
                }
                var p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
                r = /^~~local_forage_type~([^~]+)~/;
                return {
                    serialize: function(a, b) {
                        var c = "";
                        if (a && (c = a.toString()), a && ("[object ArrayBuffer]" === a.toString() || a.buffer && "[object ArrayBuffer]" === a.buffer.toString())) {
                            var d, e = "__lfsc__:";
                            a instanceof ArrayBuffer ? (d = a, e += "arbf") : (d = a.buffer, "[object Int8Array]" === c ? e += "si08": "[object Uint8Array]" === c ? e += "ui08": "[object Uint8ClampedArray]" === c ? e += "uic8": "[object Int16Array]" === c ? e += "si16": "[object Uint16Array]" === c ? e += "ur16": "[object Int32Array]" === c ? e += "si32": "[object Uint32Array]" === c ? e += "ui32": "[object Float32Array]" === c ? e += "fl32": "[object Float64Array]" === c ? e += "fl64": b(Error("Failed to get type for BinaryArray")));
                            b(e + h(d))
                        } else if ("[object Blob]" === c) c = new FileReader,
                        c.onload = function() {
                            var c = "~~local_forage_type~" + a.type + "~" + h(this.result);
                            b("__lfsc__:blob" + c)
                        },
                        c.readAsArrayBuffer(a);
                        else try {
                            b(JSON.stringify(a))
                        } catch(f) {
                            console.error("Couldn't convert value into a JSON string: ", a),
                            b(null, f)
                        }
                    },
                    ze: function(a) {
                        if ("__lfsc__:" !== a.substring(0, 9)) return JSON.parse(a);
                        var b, c = a.substring(13);
                        a = a.substring(9, 13);
                        if ("blob" === a && r.test(c)) {
                            var g = c.match(r);
                            b = g[1];
                            c = c.substring(g[0].length)
                        }
                        c = f(c);
                        switch (a) {
                        case "arbf":
                            return c;
                        case "blob":
                            var e;
                            c = [c];
                            b = {
                                type: b
                            };
                            c = c || [];
                            b = b || {};
                            try {
                                e = new Blob(c, b)
                            } catch(h) {
                                if ("TypeError" !== h.name) throw h;
                                e = new(d.BlobBuilder || d.te || d.ei || d.WebKitBlobBuilder);
                                for (a = 0; a < c.length; a += 1) e.append(c[a]);
                                e = e.getBlob(b.type)
                            }
                            return e;
                        case "si08":
                            return new Int8Array(c);
                        case "ui08":
                            return new Uint8Array(c);
                        case "uic8":
                            return new Uint8ClampedArray(c);
                        case "si16":
                            return new Int16Array(c);
                        case "ur16":
                            return new Uint16Array(c);
                        case "si32":
                            return new Int32Array(c);
                        case "ui32":
                            return new Uint32Array(c);
                        case "fl32":
                            return new Float32Array(c);
                        case "fl64":
                            return new Float64Array(c);
                        default:
                            throw Error("Unkown type: " + a);
                        }
                    },
                    xz: f,
                    Dv: h
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        },
        function(h, f, d) {
            f.ne = !0;
            f["default"] = function(f) {
                function h(a) {
                    var b = this,
                    c = {
                        db: null
                    };
                    if (a) for (var e in a) c[e] = "string" != typeof a[e] ? a[e].toString() : a[e];
                    var g = new Promise(function(a, d) {
                        try {
                            c.db = w(c.name, String(c.version), c.description, c.size)
                        } catch(e) {
                            return d(e)
                        }
                        c.db.transaction(function(e) {
                            e.executeSql("CREATE TABLE IF NOT EXISTS " + c.B + " (id INTEGER PRIMARY KEY, key unique, value)", [],
                            function() {
                                b.A = c;
                                a()
                            },
                            function(a, b) {
                                d(b)
                            })
                        })
                    });
                    return (new Promise(function(a) {
                        a(d(3))
                    })).then(function(a) {
                        return c.Bc = a,
                        g
                    })
                }
                function p(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT * FROM " + e.B + " WHERE key = ? LIMIT 1", [a],
                                function(a, c) {
                                    var d = c.rows.length ? c.rows.item(0).value: null;
                                    d && (d = e.Bc.ze(d));
                                    b(d)
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function r(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT * FROM " + e.B, [],
                                function(c, d) {
                                    for (var g = d.rows,
                                    f = g.length,
                                    h = 0; f > h; h++) {
                                        var k = g.item(h),
                                        m = k.value;
                                        if (m && (m = e.Bc.ze(m)), m = a(m, k.key, h + 1), void 0 !== m) return void b(m)
                                    }
                                    b()
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function a(a, b, c) {
                    var d = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var e = new Promise(function(c, e) {
                        d.ready().then(function() {
                            void 0 === b && (b = null);
                            var g = b,
                            f = d.A;
                            f.Bc.serialize(b,
                            function(b, d) {
                                d ? e(d) : f.db.transaction(function(d) {
                                    d.executeSql("INSERT OR REPLACE INTO " + f.B + " (key, value) VALUES (?, ?)", [a, b],
                                    function() {
                                        c(g)
                                    },
                                    function(a, b) {
                                        e(b)
                                    })
                                },
                                function(a) {
                                    a.code === a.QUOTA_ERR && e(a)
                                })
                            })
                        })["catch"](e)
                    });
                    return l(e, c),
                    e
                }
                function b(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("DELETE FROM " + e.B + " WHERE key = ?", [a],
                                function() {
                                    b()
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function c(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("DELETE FROM " + d.B, [],
                                function() {
                                    a()
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function g(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("SELECT COUNT(key) as c FROM " + d.B, [],
                                function(b, c) {
                                    var d = c.rows.item(0).Rf;
                                    a(d)
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function e(a, b) {
                    var c = this,
                    d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.A;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT key FROM " + e.B + " WHERE id = ? LIMIT 1", [a + 1],
                                function(a, c) {
                                    var d = c.rows.length ? c.rows.item(0).key: null;
                                    b(d)
                                },
                                function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return l(d, b),
                    d
                }
                function k(a) {
                    var b = this,
                    c = new Promise(function(a, c) {
                        b.ready().then(function() {
                            var d = b.A;
                            d.db.transaction(function(b) {
                                b.executeSql("SELECT key FROM " + d.B, [],
                                function(b, c) {
                                    for (var d = [], e = 0; e < c.rows.length; e++) d.push(c.rows.item(e).key);
                                    a(d)
                                },
                                function(a, b) {
                                    c(b)
                                })
                            })
                        })["catch"](c)
                    });
                    return l(c, a),
                    c
                }
                function l(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    },
                    function(a) {
                        b(a)
                    })
                }
                var w = f.openDatabase;
                if (w) return {
                    Ad: "webSQLStorage",
                    Nf: h,
                    Ni: r,
                    getItem: p,
                    setItem: a,
                    removeItem: b,
                    clear: c,
                    length: g,
                    key: e,
                    keys: k
                }
            } ("undefined" != typeof window ? window: self);
            h.kb = f["default"]
        }])
    };
    "object" == typeof exports && "object" == typeof module ? module.kb = Bc() : "function" == typeof define && define.xv ? define([], Bc) : "object" == typeof exports ? exports.localforage = Bc() : this.localforage = Bc()
} catch(Cc) {
    wc = !0
}
function Dc(h) {
    this.b = h
} (function() {
    function h(a) {
        var b;
        a || (a = {});
        b || (b = (new Date).getTime());
        a.state = 1;
        a.start = b;
        a.acc = 0;
        return a
    }
    function f(a) {
        return a ? "string" === typeof a ? a: "string" === typeof a.message ? a.message: "string" === typeof a.name ? a.name: "string" === typeof a.data ? a.data: "unknown error": "unknown error"
    }
    function d() {}
    function n() {}
    function q() {}
    var p = Dc.prototype;
    p.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    p.za.prototype.O = function() {};
    p.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    var r = p.ja.prototype;
    r.O = function() {
        this.ed = {};
        this.di = null;
        this.Up = ""
    };
    r.em = function(a, b) {
        if (this.ed.hasOwnProperty(a)) b(null, this.ed[a]);
        else {
            var c = this;
            localforage.getItem(a,
            function(d, e) {
                d ? c.ed.hasOwnProperty(a) && delete c.ed[a] : null == e ? c.ed.hasOwnProperty(a) && delete c.ed[a] : c.ed[a] = e;
                b(d, e)
            })
        }
    };
    p.j = new d;
    d.prototype.cf = function() {
        return ! 0
    };
    d.prototype.Zo = function(a) {
        return this.di === a
    };
    d.prototype.su = function(a) {
        return this.di === a
    };
    d.prototype.Ft = function(a) {
        return this.ed.hasOwnProperty(a)
    };
    p.u = new n;
    n.prototype.qp = function(a) {
        this.ed[a] = h(this.ed[a]);
        var b = this;
        localforage.setItem(a, this.ed[a],
        function(c) {
            b.di = a;
            c ? (b.Up = f(c), b.b.trigger(Dc.prototype.j.cf, b)) : b.b.trigger(Dc.prototype.j.su, b)
        })
    };
    n.prototype.em = function(a) {
        var b = this;
        this.em(a,
        function(c) {
            b.di = a;
            c ? (b.Up = f(c), b.b.trigger(Dc.prototype.j.cf, b)) : b.b.trigger(Dc.prototype.j.Zo, b)
        })
    };
    p.I = new q;
    q.prototype.jt = function(a, b) {
        b || (b = this.di);
        var c;
        c = this.ed[b];
        var d;
        if (c) {
            d || (d = (new Date).getTime());
            var e = c.acc;
            1 === c.state && (e += d - c.start);
            c = e
        } else c = 0;
        a.G(c / 1E3)
    }
})();
function R(h) {
    this.b = h
} (function() {
    function h() {
        if (0 === this.Fm.length) {
            var a = document.createElement("canvas");
            a.width = this.width;
            a.height = this.height;
            var b = a.getContext("2d");
            this.Eh ? b.drawImage(this.Da, this.qh, this.rh, this.width, this.height, 0, 0, this.width, this.height) : b.drawImage(this.Da, 0, 0, this.width, this.height);
            this.Fm = a.toDataURL("image/png")
        }
        return this.Fm
    }
    function f() {}
    function d(a) {
        a[0] = 0;
        a[1] = 0;
        a[2] = 0;
        l.push(a)
    }
    function n(a, b) {
        return a < b ? "" + a + "," + b: "" + b + "," + a
    }
    function q(a, b, c, d) {
        b = b.uid;
        c = c.uid;
        var e = n(b, c);
        if (a.hasOwnProperty(e)) a[e][2] = d;
        else {
            var g = l.length ? l.pop() : [0, 0, 0];
            g[0] = b;
            g[1] = c;
            g[2] = d;
            a[e] = g
        }
    }
    function p(a, b, c) {
        b = n(b.uid, c.uid);
        a.hasOwnProperty(b) && (d(a[b]), delete a[b])
    }
    function r(a, b, c) {
        b = n(b.uid, c.uid);
        if (a.hasOwnProperty(b)) return w = a[b][2],
        !0;
        w = -2;
        return ! 1
    }
    function a() {}
    function b() {}
    var c = R.prototype;
    c.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    var g = c.za.prototype;
    g.O = function() {
        if (!this.T) {
            var a, b, c, d, e, g, f, k, m;
            this.Cd = [];
            this.yi = !1;
            a = 0;
            for (b = this.Fc.length; a < b; a++) {
                e = this.Fc[a];
                f = {};
                f.name = e[0];
                f.speed = e[1];
                f.loop = e[2];
                f.ko = e[3];
                f.lo = e[4];
                f.Pe = e[5];
                f.ga = e[6];
                f.frames = [];
                c = 0;
                for (d = e[7].length; c < d; c++) g = e[7][c],
                k = {},
                k.Ao = g[0],
                k.ws = g[1],
                k.qh = g[2],
                k.rh = g[3],
                k.width = g[4],
                k.height = g[5],
                k.duration = g[6],
                k.wc = g[7],
                k.xc = g[8],
                k.gn = g[9],
                k.ql = g[10],
                k.Mr = g[11],
                k.Eh = 0 !== k.width,
                k.Fm = "",
                k.RA = h,
                m = {
                    left: 0,
                    top: 0,
                    right: 1,
                    bottom: 1
                },
                k.uo = m,
                k.$a = null,
                (m = this.b.Ww(g[0])) ? k.Da = m: (k.Da = new Image, k.Da.Kv = g[0], k.Da.Jv = g[1], k.Da.Ev = null, this.b.Ns(k.Da, g[0])),
                f.frames.push(k),
                this.Cd.push(k);
                this.Fc[a] = f
            }
        }
    };
    g.Is = function() {
        var a, b, c;
        a = 0;
        for (b = this.d.length; a < b; a++) c = this.d[a],
        c.ik = c.Ma.$a
    };
    g.Qn = function() {
        if (!this.T) {
            var a, b, c;
            a = 0;
            for (b = this.Cd.length; a < b; ++a) c = this.Cd[a],
            c.Da.Ev = null,
            c.$a = null;
            this.yi = !1;
            this.Is()
        }
    };
    g.Rn = function() {
        if (!this.T && this.d.length) {
            var a, b, c;
            a = 0;
            for (b = this.Cd.length; a < b; ++a) c = this.Cd[a],
            c.$a = this.b.J.Xk(c.Da, this.b.Va, c.Mr);
            this.Is()
        }
    };
    g.jy = function() {
        if (!this.T && !this.yi && this.b.J) {
            var a, b, c;
            a = 0;
            for (b = this.Cd.length; a < b; ++a) c = this.Cd[a],
            c.$a = this.b.J.Xk(c.Da, this.b.Va, c.Mr);
            this.yi = !0
        }
    };
    g.Io = function() {
        if (!this.T && !this.d.length && this.yi) {
            var a, b, c;
            a = 0;
            for (b = this.Cd.length; a < b; ++a) c = this.Cd[a],
            this.b.J.deleteTexture(c.$a),
            c.$a = null;
            this.yi = !1
        }
    };
    var e = [];
    g.bo = function(a) {
        var b, c, d;
        A(e);
        b = 0;
        for (c = this.Cd.length; b < c; ++b) d = this.Cd[b].Da,
        -1 === e.indexOf(d) && (a.drawImage(d, 0, 0), e.push(d))
    };
    c.ja = function(a) {
        this.type = a;
        this.b = a.b;
        a = this.type.Fc[0].frames[0].ql;
        this.$c ? this.Aa.tj(a) : this.Aa = new eb(a)
    };
    var k = c.ja.prototype;
    k.O = function() {
        this.visible = 0 === this.C[0];
        this.Gk = this.Ii = !1;
        this.ve = 0 !== this.C[3];
        this.Ja = this.gq(this.C[1]) || this.type.Fc[0];
        this.K = this.C[2];
        0 > this.K && (this.K = 0);
        this.K >= this.Ja.frames.length && (this.K = this.Ja.frames.length - 1);
        var a = this.Ja.frames[this.K];
        this.Aa.tj(a.ql);
        this.wc = a.wc;
        this.xc = a.xc;
        this.Ng = this.Ja.speed;
        this.of = this.Ja.lo;
        1 === this.type.Fc.length && 1 === this.type.Fc[0].frames.length || 0 === this.Ng || (this.b.Rl(this), this.Ii = !0);
        this.$c ? this.Vd.reset() : this.Vd = new cb;
        this.Ge = this.Vd.na;
        this.Pf = !0;
        this.re = 0;
        this.Of = !0;
        this.Kg = this.Bp = "";
        this.Kp = 0;
        this.Zj = -1;
        this.type.jy();
        var b, c, d, e, g, f, h, a = 0;
        for (b = this.type.Fc.length; a < b; a++) for (e = this.type.Fc[a], c = 0, d = e.frames.length; c < d; c++) g = e.frames[c],
        0 === g.width && (g.width = g.Da.width, g.height = g.Da.height),
        g.Eh && (h = g.Da, f = g.uo, f.left = g.qh / h.width, f.top = g.rh / h.height, f.right = (g.qh + g.width) / h.width, f.bottom = (g.rh + g.height) / h.height, 0 === g.qh && 0 === g.rh && g.width === h.width && g.height === h.height && (g.Eh = !1));
        this.Ma = this.Ja.frames[this.K];
        this.ik = this.Ma.$a
    };
    k.Lb = function() {
        var a = {
            a: this.Ja.ga,
            f: this.K,
            cas: this.Ng,
            fs: this.Ge,
            ar: this.re,
            at: this.Vd.na,
            rt: this.of
        };
        this.Pf || (a.ap = this.Pf);
        this.Of || (a.af = this.Of);
        return a
    };
    k.kc = function(a) {
        var b = this.$w(a.a);
        b && (this.Ja = b);
        this.K = a.f;
        0 > this.K && (this.K = 0);
        this.K >= this.Ja.frames.length && (this.K = this.Ja.frames.length - 1);
        this.Ng = a.cas;
        this.Ge = a.fs;
        this.re = a.ar;
        this.Vd.reset();
        this.Vd.na = a.at;
        this.Pf = a.hasOwnProperty("ap") ? a.ap: !0;
        this.Of = a.hasOwnProperty("af") ? a.af: !0;
        a.hasOwnProperty("rt") ? this.of = a.rt: this.of = this.Ja.lo;
        this.Ma = this.Ja.frames[this.K];
        this.ik = this.Ma.$a;
        this.Aa.tj(this.Ma.ql);
        this.wc = this.Ma.wc;
        this.xc = this.Ma.xc
    };
    k.pm = function(a) {
        this.K = a ? 0 : this.Ja.frames.length - 1;
        this.Pf = !1;
        this.Bp = this.Ja.name;
        this.Gk = !0;
        this.b.trigger(R.prototype.j.Ut, this);
        this.b.trigger(R.prototype.j.Tt, this);
        this.Gk = !1;
        this.re = 0
    };
    k.te = function() {
        return this.Vd.na
    };
    k.Mb = function() {
        this.Vd.add(this.b.qi(this));
        this.Kg.length && this.Qp();
        0 <= this.Zj && this.Rp();
        var a = this.Vd.na,
        b = this.Ja,
        c = b.frames[this.K],
        d = c.duration / this.Ng;
        this.Pf && a >= this.Ge + d && (this.Of ? this.K++:this.K--, this.Ge += d, this.K >= b.frames.length && (b.Pe ? (this.Of = !1, this.K = b.frames.length - 2) : b.loop ? this.K = this.of: (this.re++, this.re >= b.ko ? this.pm(!1) : this.K = this.of)), 0 > this.K && (b.Pe ? (this.K = 1, this.Of = !0, b.loop || (this.re++, this.re >= b.ko && this.pm(!0))) : b.loop ? this.K = this.of: (this.re++, this.re >= b.ko ? this.pm(!0) : this.K = this.of)), 0 > this.K ? this.K = 0 : this.K >= b.frames.length && (this.K = b.frames.length - 1), a > this.Ge + b.frames[this.K].duration / this.Ng && (this.Ge = a), a = b.frames[this.K], this.Gg(c, a), this.b.ya = !0)
    };
    k.gq = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.type.Fc.length; b < c; b++) if (d = this.type.Fc[b], mb(d.name, a)) return d;
        return null
    };
    k.$w = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.type.Fc.length; b < c; b++) if (d = this.type.Fc[b], d.ga === a) return d;
        return null
    };
    k.Qp = function() {
        var a = this.Ja.frames[this.K],
        b = this.gq(this.Kg);
        this.Kg = ""; ! b || mb(b.name, this.Ja.name) && this.Pf || (this.Ja = b, this.Ng = b.speed, this.of = b.lo, 0 > this.K && (this.K = 0), this.K >= this.Ja.frames.length && (this.K = this.Ja.frames.length - 1), 1 === this.Kp && (this.K = 0), this.Pf = !0, this.Ge = this.Vd.na, this.Of = !0, this.Gg(a, this.Ja.frames[this.K]), this.b.ya = !0)
    };
    k.Rp = function() {
        var a = this.Ja.frames[this.K],
        b = this.K;
        this.K = sa(this.Zj);
        0 > this.K && (this.K = 0);
        this.K >= this.Ja.frames.length && (this.K = this.Ja.frames.length - 1);
        b !== this.K && (this.Gg(a, this.Ja.frames[this.K]), this.Ge = this.Vd.na, this.b.ya = !0);
        this.Zj = -1
    };
    k.Gg = function(a, b) {
        var c = a.width,
        d = a.height,
        e = b.width,
        g = b.height;
        c != e && (this.width *= e / c);
        d != g && (this.height *= g / d);
        this.wc = b.wc;
        this.xc = b.xc;
        this.Aa.tj(b.ql);
        this.Y();
        this.Ma = b;
        this.ik = b.$a;
        c = 0;
        for (d = this.Z.length; c < d; c++) e = this.Z[c],
        e.Ar && e.Ar(a, b);
        this.b.trigger(R.prototype.j.Gg, this)
    };
    k.Be = function(a) {
        a.globalAlpha = this.opacity;
        var b = this.Ma,
        c = b.Eh,
        d = b.Da,
        e = this.x,
        g = this.y,
        f = this.width,
        h = this.height;
        if (0 === this.k && 0 <= f && 0 <= h) e -= this.wc * f,
        g -= this.xc * h,
        this.b.Qe && (e = Math.round(e), g = Math.round(g)),
        c ? a.drawImage(d, b.qh, b.rh, b.width, b.height, e, g, f, h) : a.drawImage(d, e, g, f, h);
        else {
            this.b.Qe && (e = Math.round(e), g = Math.round(g));
            a.save();
            var k = 0 < f ? 1 : -1,
            m = 0 < h ? 1 : -1;
            a.translate(e, g);
            1 === k && 1 === m || a.scale(k, m);
            a.rotate(this.k * k * m);
            e = 0 - this.wc * oa(f);
            g = 0 - this.xc * oa(h);
            c ? a.drawImage(d, b.qh, b.rh, b.width, b.height, e, g, oa(f), oa(h)) : a.drawImage(d, e, g, oa(f), oa(h));
            a.restore()
        }
    };
    k.Pg = function(a) {
        this.ld(a)
    };
    k.ld = function(a) {
        a.bd(this.ik);
        a.Bh(this.opacity);
        var b = this.Ma,
        c = this.Oc;
        if (this.b.Qe) {
            var d = Math.round(this.x) - this.x,
            e = Math.round(this.y) - this.y;
            b.Eh ? a.Df(c.sb + d, c.tb + e, c.Zb + d, c.$b + e, c.Pb + d, c.Qb + e, c.Nb + d, c.Ob + e, b.uo) : a.kj(c.sb + d, c.tb + e, c.Zb + d, c.$b + e, c.Pb + d, c.Qb + e, c.Nb + d, c.Ob + e)
        } else b.Eh ? a.Df(c.sb, c.tb, c.Zb, c.$b, c.Pb, c.Qb, c.Nb, c.Ob, b.uo) : a.kj(c.sb, c.tb, c.Zb, c.$b, c.Pb, c.Qb, c.Nb, c.Ob)
    };
    k.gx = function(a) {
        var b = this.Ma,
        c, d;
        c = 0;
        for (d = b.gn.length; c < d; c++) if (mb(a, b.gn[c][0])) return c;
        return - 1
    };
    k.ri = function(a, b) {
        var c = this.Ma,
        d = c.gn,
        e;
        la(a) ? e = this.gx(a) : e = a - 1;
        e = sa(e);
        if (0 > e || e >= d.length) return b ? this.x: this.y;
        var g = (d[e][1] - c.wc) * this.width,
        d = d[e][2],
        d = (d - c.xc) * this.height,
        c = Math.cos(this.k);
        e = Math.sin(this.k);
        var f = g * c - d * e,
        d = d * c + g * e,
        g = f + this.x,
        d = d + this.y;
        return b ? g: d
    };
    var l = [],
    w = -2,
    M = [];
    f.prototype.Zt = function(a) {
        if (!a) return ! 1;
        var b = this.b,
        c = b.Ak(),
        e = c.type,
        g = null;
        c.xa.collmemory ? g = c.xa.collmemory: (g = {},
        c.xa.collmemory = g);
        c.xa.spriteCreatedDestroyCallback || (c.xa.spriteCreatedDestroyCallback = !0, b.mm(function(a) {
            var b = c.xa.collmemory;
            a = a.uid;
            var e, g;
            for (e in b) b.hasOwnProperty(e) && (g = b[e], g[0] === a || g[1] === a) && (d(b[e]), delete b[e])
        }));
        var f = e.U(),
        h = a.U(),
        f = f.vc(),
        k,
        m,
        l,
        n,
        u,
        I,
        T,
        x = this.b.Cg,
        P = x - 1,
        y = b.bb().jb;
        for (m = 0; m < f.length; m++) {
            l = f[m];
            h.ea ? (l.Ga(), this.b.Um(l.q, a, l.Ra, M), k = M, this.b.vv(l, a, k)) : k = h.vc();
            for (n = 0; n < k.length; n++) u = k[n],
            b.Hf(l, u) || b.Hv(l, u) ? (I = r(g, l, u), I = !I || w < P, q(g, l, u, x), I && (b.Cf(y.fa), I = e.U(), T = a.U(), I.ea = !1, T.ea = !1, e === a ? (I.d.length = 2, I.d[0] = l, I.d[1] = u, e.dd()) : (I.d.length = 1, T.d.length = 1, I.d[0] = l, T.d[0] = u, e.dd(), a.dd()), y.Ef(), b.Md(y.fa))) : p(g, l, u);
            A(M)
        }
        return ! 1
    };
    var P = null,
    m = new ca,
    u = !1,
    I = [],
    T = new wa(0, 0, 0, 0);
    g.finish = function(a) {
        if (u) {
            if (a) {
                var b = this.b.bb().jb.Yc;
                a = P.U();
                var c = m.Jf(),
                d,
                e;
                if (a.ea) {
                    a.ea = !1;
                    A(a.d);
                    d = 0;
                    for (e = c.length; d < e; ++d) a.d[d] = c[d];
                    if (b) for (A(a.ca), d = 0, e = P.d.length; d < e; ++d) c = P.d[d],
                    m.contains(c) || a.ca.push(c)
                } else if (b) for (b = a.d.length, d = 0, e = c.length; d < e; ++d) a.d[b + d] = c[d],
                Fa(a.ca, c[d]);
                else Ca(a.d, c);
                P.dd()
            }
            m.clear();
            u = !1
        }
    };
    f.prototype.Ct = function(a) {
        if (a) {
            var b = !1,
            c, d, e, g = this.b.Ak(),
            f = g.type,
            g = g.Jk;
            c = a.U();
            d = this.b.bb().jb.Yc;
            var h;
            c.ea ? (this.Ga(), T.Mg(this.Ra), T.offset(0, 0), this.b.Um(this.q, a, T, I), h = I) : h = d ? this.b.Tx() && !c.ca.length && c.d.length ? c.d: c.ca: c.d;
            P = a;
            u = f !== a && !g;
            c = 0;
            for (d = h.length; c < d; c++) if (e = h[c], this.b.Hf(this, e)) {
                b = !0;
                if (g) break;
                f !== a && m.add(e)
            }
            A(I);
            a = b
        } else a = !1;
        return a
    };
    f.prototype.ut = function(a) {
        return this.Kg.length ? mb(this.Kg, a) : mb(this.Ja.name, a)
    };
    f.prototype.$s = function(a, b) {
        return ic(this.K, a, b)
    };
    f.prototype.Tt = function(a) {
        return mb(this.Bp, a)
    };
    f.prototype.Ut = function() {
        return ! 0
    };
    f.prototype.Gg = function() {
        return ! 0
    };
    c.j = new f;
    a.prototype.Gu = function(a, b) {
        this.Kg = a;
        this.Kp = b;
        this.Ii || (this.b.Rl(this), this.Ii = !0);
        this.Gk || this.Qp()
    };
    a.prototype.Hu = function(a) {
        this.Zj = a;
        this.Ii || (this.b.Rl(this), this.Ii = !0);
        this.Gk || this.Rp()
    };
    a.prototype.Su = function(a) {
        a = oa(this.width) * (0 === a ? -1 : 1);
        this.width !== a && (this.width = a, this.Y())
    };
    a.prototype.op = function(a) {
        var b = this.Ma,
        c = b.width * a * (0 > this.width ? -1 : 1);
        a = b.height * a * (0 > this.height ? -1 : 1);
        if (this.width !== c || this.height !== a) this.width = c,
        this.height = a,
        this.Y()
    };
    c.u = new a;
    b.prototype.Ss = function(a) {
        a.P(this.K)
    };
    b.prototype.qt = function(a, b) {
        a.G(this.ri(b, !0))
    };
    b.prototype.tt = function(a, b) {
        a.G(this.ri(b, !1))
    };
    c.I = new b
})();
function Ec(h) {
    this.b = h
} (function() {
    function h(a, b) {
        return a.length ? a.pop() : new b
    }
    function f(a, b, c) {
        if (c) {
            var d;
            c = 0;
            for (d = b.length; c < d; c++) a.length < r && a.push(b[c]);
            A(b)
        } else for (d in b) Object.prototype.hasOwnProperty.call(b, d) && (a.length < r && a.push(b[d]), delete b[d])
    }
    function d(b, c, d) {
        var e = b.rg;
        d = d.replace(/\s\s*$/, "");
        c >= e.length && e.push(h(a, Object));
        c = e[c];
        c.text = d;
        c.width = b.Fn(d);
        b.Ih = pa(b.Ih, c.width)
    }
    function n() {}
    var q = Ec.prototype;
    q.O = function() {};
    q.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    var p = q.za.prototype;
    p.O = function() {
        this.T || (this.Da = new Image, this.b.Ns(this.Da, this.Ao), this.$a = null)
    };
    p.Qn = function() {
        this.T || (this.$a = null)
    };
    p.Rn = function() {
        if (!this.T && this.d.length) {
            this.$a || (this.$a = this.b.J.Xk(this.Da, this.b.Va, this.Bo));
            var a, b;
            a = 0;
            for (b = this.d.length; a < b; a++) this.d[a].$a = this.$a
        }
    };
    p.Io = function() {
        this.T || this.d.length || !this.$a || (this.b.J.deleteTexture(this.$a), this.$a = null)
    };
    p.bo = function(a) {
        a.drawImage(this.Da, 0, 0)
    };
    q.ja = function(a) {
        this.type = a;
        this.b = a.b
    };
    p = q.ja.prototype;
    p.xg = function() {
        f(a, this.rg, !0);
        f(b, this.ak, !1);
        f(c, this.bk, !1);
        Xa(this.kf)
    };
    p.O = function() {
        this.Da = this.type.Da;
        this.$j = this.C[0];
        this.jf = this.C[1];
        this.characterSet = this.C[2];
        this.text = this.C[3];
        this.Wd = this.C[4];
        this.visible = 0 === this.C[5];
        this.Ek = this.C[6] / 2;
        this.$l = this.C[7] / 2;
        this.Oz = 0 === this.C[9];
        this.Lg = this.C[10];
        this.lineHeight = this.C[11];
        this.Bg = this.Ih = 0;
        this.$c ? (A(this.rg), Xa(this.ak), Xa(this.bk), Xa(this.kf)) : (this.rg = [], this.ak = {},
        this.bk = {},
        this.kf = {});
        this.Jh = !0;
        this.wn = this.width;
        this.b.J && (this.type.$a || (this.type.$a = this.b.J.Xk(this.type.Da, this.b.Va, this.type.Bo)), this.$a = this.type.$a);
        this.av()
    };
    p.Lb = function() {
        var a = {
            t: this.text,
            csc: this.Wd,
            csp: this.Lg,
            lh: this.lineHeight,
            tw: this.Ih,
            th: this.Bg,
            lrt: this.cy,
            ha: this.Ek,
            va: this.$l,
            cw: {}
        },
        b;
        for (b in this.kf) a.cw[b] = this.kf[b];
        return a
    };
    p.kc = function(a) {
        this.text = a.t;
        this.Wd = a.csc;
        this.Lg = a.csp;
        this.lineHeight = a.lh;
        this.Ih = a.tw;
        this.Bg = a.th;
        this.cy = a.lrt;
        a.hasOwnProperty("ha") && (this.Ek = a.ha);
        a.hasOwnProperty("va") && (this.$l = a.va);
        for (var b in a.cw) this.kf[b] = a.cw[b];
        this.Jh = !0;
        this.wn = this.width
    };
    var r = 1E3,
    a = [],
    b = [],
    c = [];
    p.av = function() {
        for (var a = this.Da,
        d = a.width,
        e = a.height,
        a = this.$j,
        g = this.jf,
        f = a / d,
        m = g / e,
        n = this.characterSet,
        d = Math.floor(d / a), e = Math.floor(e / g), q = 0; q < n.length && !(q >= d * e); q++) {
            var p = q % d,
            r = Math.floor(q / d),
            H = n.charAt(q);
            if (this.b.J) {
                var C = this.bk,
                t = p * f,
                F = r * m,
                p = (p + 1) * f,
                r = (r + 1) * m;
                void 0 === C[H] && (C[H] = h(c, wa));
                C[H].left = t;
                C[H].top = F;
                C[H].right = p;
                C[H].bottom = r
            } else C = this.ak,
            p = p * a,
            r = r * g,
            t = a,
            F = g,
            void 0 === C[H] && (C[H] = h(b, Object)),
            C[H].x = p,
            C[H].y = r,
            C[H].Ms = t,
            C[H].oq = F
        }
    };
    var g = [];
    q.dv = function(a) {
        A(g);
        for (var b = "",
        c, d = 0; d < a.length;) if (c = a.charAt(d), "\n" === c) b.length && (g.push(b), b = ""),
        g.push("\n"),
        ++d;
        else if (" " === c || "\t" === c || "-" === c) {
            do b += a.charAt(d),
            d++;
            while (d < a.length && (" " === a.charAt(d) || "\t" === a.charAt(d)));
            g.push(b);
            b = ""
        } else d < a.length && (b += c, d++);
        b.length && g.push(b)
    };
    q.ov = function(b) {
        var c = b.text,
        d = b.rg;
        if (c && c.length) {
            var e = b.width;
            if (2 >= e) f(a, d, !0);
            else {
                var g = b.Wd,
                m = b.Lg;
                if (c.length * (b.$j * g + m) - m <= e && -1 === c.indexOf("\n") && (m = b.Fn(c), m <= e)) {
                    f(a, d, !0);
                    d.push(h(a, Object));
                    d[0].text = c;
                    d[0].width = m;
                    b.Ih = m;
                    b.Bg = b.jf * g + b.lineHeight;
                    return
                }
                this.pv(b);
                b.Bg = d.length * (b.jf * g + b.lineHeight)
            }
        } else f(a, d, !0)
    };
    q.pv = function(b) {
        var c = b.Oz,
        e = b.text,
        f = b.rg,
        h = b.width;
        c && (this.dv(e), e = g);
        var m = "",
        n, q, p, v = 0,
        H = !1;
        for (p = 0; p < e.length; p++)"\n" === e[p] ? (!0 === H ? H = !1 : (d(b, v, m), v++), m = "") : (H = !1, n = m, m += e[p], q = b.Fn(m.replace(/\s\s*$/, "")), q > h && ("" === n ? (d(b, v, m), m = "", H = !0) : (d(b, v, n), m = e[p]), v++, c || " " !== m || (m = "")));
        m.replace(/\s\s*$/, "").length && (d(b, v, m), v++);
        for (p = v; p < f.length; p++) a.length < r && a.push(f[p]);
        f.length = v
    };
    p.Fn = function(a) {
        for (var b = this.Lg,
        c = a.length,
        d = 0,
        e = 0; e < c; e++) d += this.Tm(a.charAt(e)) * this.Wd + b;
        return d - (0 < d ? b: 0)
    };
    p.Tm = function(a) {
        var b = this.kf;
        return void 0 !== b[a] ? b[a] : this.$j
    };
    p.Ur = function() {
        if (this.Jh || this.width !== this.wn) this.Bg = this.Ih = 0,
        this.type.Ca.ov(this),
        this.Jh = !1,
        this.wn = this.width
    };
    p.Be = function(a) {
        var b = this.Da;
        if ("" !== this.text && null != b && (this.Ur(), !(this.height < this.jf * this.Wd + this.lineHeight))) {
            a.globalAlpha = this.opacity;
            var b = this.x,
            c = this.y;
            this.b.Qe && (b = Math.round(b), c = Math.round(c));
            var d = this.q.Ea,
            e = this.q.Fa,
            g = this.q.Ia,
            f = this.q.Ha;
            a.save();
            a.translate(b, c);
            a.rotate(this.k);
            for (var h = this.k,
            n = this.Ek,
            q = this.Wd,
            p = this.jf * q,
            r = this.lineHeight,
            t = this.Lg,
            F = this.rg,
            J, S = -(this.wc * this.width), Q = -(this.xc * this.height), Q = Q + this.$l * pa(0, this.height - this.Bg), B, V, U, N = 0; N < F.length; N++) {
                var L = F[N].text;
                J = n * pa(0, this.width - F[N].width);
                B = S + J;
                Q += r;
                if (0 === h && c + Q + p < e) Q += p;
                else {
                    for (var z = 0; z < L.length; z++) {
                        V = L.charAt(z);
                        J = this.Tm(V);
                        var x = this.ak[V];
                        if (0 === h && b + B + J * q + t < d) B += J * q + t;
                        else {
                            if (B + J * q > this.width + 1E-5) break;
                            void 0 !== x && (V = B, U = Q, 0 === h && 1 === q && (V = Math.round(V), U = Math.round(U)), a.drawImage(this.Da, x.x, x.y, x.Ms, x.oq, V, U, x.Ms * q, x.oq * q));
                            B += J * q + t;
                            if (0 === h && b + B > g) break
                        }
                    }
                    Q += p;
                    if (0 === h && (Q + p + r > this.height || c + Q > f)) break
                }
            }
            a.restore()
        }
    };
    var e = new xa;
    p.ld = function(a) {
        a.bd(this.$a);
        a.Bh(this.opacity);
        if (this.text && (this.Ur(), !(this.height < this.jf * this.Wd + this.lineHeight))) {
            this.Ga();
            var b = this.Oc,
            c = 0,
            d = 0;
            this.b.Qe && (c = Math.round(this.x) - this.x, d = Math.round(this.y) - this.y);
            var g = this.q.Ea,
            f = this.q.Fa,
            h = this.q.Ia,
            n = this.q.Ha,
            q = this.k,
            p = this.Ek,
            r = this.$l,
            C = this.Wd,
            t = this.jf * C,
            F = this.lineHeight,
            J = this.Lg,
            S = this.rg,
            Q = this.Bg,
            B, V, U;
            0 !== q && (V = Math.cos(q), U = Math.sin(q));
            for (var c = b.sb + c,
            b = b.tb + d,
            N, r = r * pa(0, this.height - Q), L, z, Q = 0; Q < S.length; Q++) if (d = S[Q].text, N = B = p * pa(0, this.width - S[Q].width), r += F, 0 === q && b + r + t < f) r += t;
            else {
                for (var x = 0; x < d.length; x++) {
                    var O = d.charAt(x);
                    B = this.Tm(O);
                    O = this.bk[O];
                    if (0 === q && c + N + B * C + J < g) N += B * C + J;
                    else {
                        if (N + B * C > this.width + 1E-5) break;
                        if (void 0 !== O) {
                            var y = this.$j * C,
                            K = this.jf * C;
                            L = N;
                            z = r;
                            0 === q && 1 === C && (L = Math.round(L), z = Math.round(z));
                            e.sb = L;
                            e.tb = z;
                            e.Zb = L + y;
                            e.$b = z;
                            e.Nb = L;
                            e.Ob = z + K;
                            e.Pb = L + y;
                            e.Qb = z + K;
                            0 !== q && (L = e, z = V, y = U, K = void 0, K = L.sb * z - L.tb * y, L.tb = L.tb * z + L.sb * y, L.sb = K, K = L.Zb * z - L.$b * y, L.$b = L.$b * z + L.Zb * y, L.Zb = K, K = L.Nb * z - L.Ob * y, L.Ob = L.Ob * z + L.Nb * y, L.Nb = K, K = L.Pb * z - L.Qb * y, L.Qb = L.Qb * z + L.Pb * y, L.Pb = K);
                            e.offset(c, b);
                            a.Df(e.sb, e.tb, e.Zb, e.$b, e.Pb, e.Qb, e.Nb, e.Ob, O)
                        }
                        N += B * C + J;
                        if (0 === q && c + N > h) break
                    }
                }
                r += t;
                if (0 === q && (r + t + F > this.height || b + r > n)) break
            }
        }
    };
    q.j = new
    function() {};
    n.prototype.Xu = function(a) {
        ja(a) && 1E9 > a && (a = Math.round(1E10 * a) / 1E10);
        a = a.toString();
        this.text !== a && (this.text = a, this.Jh = !0, this.b.ya = !0)
    };
    n.prototype.op = function(a) {
        a !== this.Wd && (this.Wd = a, this.Jh = !0, this.b.ya = !0)
    };
    p.Iu = function(a, b) {
        var c = parseInt(b, 10);
        this.kf[a] !== c && (this.kf[a] = c, this.Jh = !0, this.b.ya = !0)
    };
    n.prototype.Ju = function(a, b) {
        if ("" !== a) for (var c = 0; c < a.length; c++) this.Iu(a.charAt(c), b)
    };
    q.u = new n;
    q.I = new
    function() {}
})();
function Fc(h) {
    this.b = h
} (function() {
    function h(a) {
        c = a.x;
        g = a.y;
        e = a.z
    }
    function f(a, b, c, e) {
        var g;
        g = k.length ? k.pop() : new d;
        g.init(a, b, c, e);
        return g
    }
    function d() {
        this.xj = this.id = this.qg = this.pg = this.y = this.x = this.Kl = this.Jl = this.vn = this.time = this.yo = 0;
        this.Cj = this.Ul = !1
    }
    function n(a) {
        return a.sourceCapabilities && a.sourceCapabilities.firesTouchEvents || a.originalEvent && a.originalEvent.sourceCapabilities && a.originalEvent.sourceCapabilities.firesTouchEvents
    }
    function q() {}
    function p() {}
    var r = Fc.prototype;
    r.za = function(a) {
        this.Ca = a;
        this.b = a.b
    };
    r.za.prototype.O = function() {};
    r.ja = function(a) {
        this.type = a;
        this.b = a.b;
        this.touches = [];
        this.Gn = !1
    };
    var a = r.ja.prototype,
    b = {
        left: 0,
        top: 0
    };
    a.mi = function(a) {
        var b, c;
        b = 0;
        for (c = this.touches.length; b < c; b++) if (this.touches[b].id === a) return b;
        return - 1
    };
    var c = 0,
    g = 0,
    e = 0,
    k = [];
    d.prototype.init = function(a, b, c, d) {
        var e = Ya();
        this.yo = this.vn = this.time = e;
        this.Jl = a;
        this.Kl = b;
        this.x = a;
        this.y = b;
        this.pg = a;
        this.qg = b;
        this.pressure = this.height = this.width = 0;
        this.id = c;
        this.xj = d;
        this.Cj = this.Ul = !1
    };
    d.prototype.update = function(a, b, c, d, e, g) {
        this.vn = this.time;
        this.time = a;
        this.pg = this.x;
        this.qg = this.y;
        this.x = b;
        this.y = c;
        this.width = d;
        this.height = e;
        this.pressure = g; ! this.Cj && 15 <= Ta(this.Jl, this.Kl, this.x, this.y) && (this.Cj = !0)
    };
    d.prototype.oy = function(a, b) { ! this.Ul && 500 <= Ya() - this.yo && !this.Cj && 15 > Ta(this.Jl, this.Kl, this.x, this.y) && (this.Ul = !0, a.le = this.xj, a.Mh = this.id, a.Vg = b, a.b.trigger(Fc.prototype.j.cu, a), a.xe = this.x, a.ye = this.y, a.b.trigger(Fc.prototype.j.du, a), a.Vg = 0)
    };
    var l = -1E3,
    w = -1E3,
    M = -1E4;
    d.prototype.hr = function(a, b) {
        if (!this.Ul) {
            var c = Ya();
            333 >= c - this.yo && !this.Cj && 15 > Ta(this.Jl, this.Kl, this.x, this.y) && (a.le = this.xj, a.Mh = this.id, a.Vg = b, 666 >= c - M && 25 > Ta(l, w, this.x, this.y) ? (a.b.trigger(Fc.prototype.j.$t, a), a.xe = this.x, a.ye = this.y, a.b.trigger(Fc.prototype.j.au, a), w = l = -1E3, M = -1E4) : (a.b.trigger(Fc.prototype.j.tu, a), a.xe = this.x, a.ye = this.y, a.b.trigger(Fc.prototype.j.uu, a), l = this.x, w = this.y, M = c), a.Vg = 0)
        }
    };
    a.O = function() {
        this.Zx = !("undefined" === typeof window.c2isWindows8 || !window.c2isWindows8);
        this.Vg = this.Mh = this.le = this.ye = this.xe = this.wp = this.vp = this.up = this.tv = this.sv = this.rv = this.ml = this.ll = this.kl = 0;
        this.Lz = 0 !== this.C[0];
        var a = 0 < this.b.uc ? document: this.b.canvas,
        b = document;
        this.b.jc ? b = a = window.Canvas: this.b.nd && (b = a = window);
        var c = this;
        "undefined" !== typeof PointerEvent ? (a.addEventListener("pointerdown",
        function(a) {
            c.yr(a)
        },
        !1), a.addEventListener("pointermove",
        function(a) {
            c.xr(a)
        },
        !1), b.addEventListener("pointerup",
        function(a) {
            c.hl(a, !1)
        },
        !1), b.addEventListener("pointercancel",
        function(a) {
            c.hl(a, !0)
        },
        !1), this.b.canvas && (this.b.canvas.addEventListener("MSGestureHold",
        function(a) {
            a.preventDefault()
        },
        !1), document.addEventListener("MSGestureHold",
        function(a) {
            a.preventDefault()
        },
        !1), this.b.canvas.addEventListener("gesturehold",
        function(a) {
            a.preventDefault()
        },
        !1), document.addEventListener("gesturehold",
        function(a) {
            a.preventDefault()
        },
        !1))) : window.navigator.msPointerEnabled ? (a.addEventListener("MSPointerDown",
        function(a) {
            c.yr(a)
        },
        !1), a.addEventListener("MSPointerMove",
        function(a) {
            c.xr(a)
        },
        !1), b.addEventListener("MSPointerUp",
        function(a) {
            c.hl(a, !1)
        },
        !1), b.addEventListener("MSPointerCancel",
        function(a) {
            c.hl(a, !0)
        },
        !1), this.b.canvas && (this.b.canvas.addEventListener("MSGestureHold",
        function(a) {
            a.preventDefault()
        },
        !1), document.addEventListener("MSGestureHold",
        function(a) {
            a.preventDefault()
        },
        !1))) : (a.addEventListener("touchstart",
        function(a) {
            c.Cr(a)
        },
        !1), a.addEventListener("touchmove",
        function(a) {
            c.Br(a)
        },
        !1), b.addEventListener("touchend",
        function(a) {
            c.Sn(a, !1)
        },
        !1), b.addEventListener("touchcancel",
        function(a) {
            c.Sn(a, !0)
        },
        !1));
        if (this.Zx) {
            var d = function(a) {
                a = a.reading;
                c.up = a.accelerationX;
                c.vp = a.accelerationY;
                c.wp = a.accelerationZ
            },
            e = function(a) {
                a = a.reading;
                c.kl = a.yawDegrees;
                c.ll = a.pitchDegrees;
                c.ml = a.rollDegrees
            },
            g = Windows.Devices.Sensors.Accelerometer.getDefault();
            g && (g.reportInterval = Math.max(g.minimumReportInterval, 16), g.addEventListener("readingchanged", d));
            var f = Windows.Devices.Sensors.Inclinometer.getDefault();
            f && (f.reportInterval = Math.max(f.minimumReportInterval, 16), f.addEventListener("readingchanged", e));
            document.addEventListener("visibilitychange",
            function() {
                document.hidden || document.msHidden ? (g && g.removeEventListener("readingchanged", d), f && f.removeEventListener("readingchanged", e)) : (g && g.addEventListener("readingchanged", d), f && f.addEventListener("readingchanged", e))
            },
            !1)
        } else window.addEventListener("deviceorientation",
        function(a) {
            c.kl = a.alpha || 0;
            c.ll = a.beta || 0;
            c.ml = a.gamma || 0
        },
        !1),
        window.addEventListener("devicemotion",
        function(a) {
            a.accelerationIncludingGravity && (c.rv = a.accelerationIncludingGravity.x || 0, c.sv = a.accelerationIncludingGravity.y || 0, c.tv = a.accelerationIncludingGravity.z || 0);
            a.acceleration && (c.up = a.acceleration.x || 0, c.vp = a.acceleration.y || 0, c.wp = a.acceleration.z || 0)
        },
        !1);
        this.Lz && !this.b.zb && (jQuery(document).mousemove(function(a) {
            c.yy(a)
        }), jQuery(document).mousedown(function(a) {
            c.xy(a)
        }), jQuery(document).mouseup(function(a) {
            c.zy(a)
        })); ! this.b.fh && this.b.Vc && navigator.accelerometer && navigator.accelerometer.watchAcceleration && navigator.accelerometer.watchAcceleration(h, null, {
            frequency: 40
        });
        this.b.zz(this)
    };
    a.xr = function(a) {
        if (a.pointerType !== a.MSPOINTER_TYPE_MOUSE && "mouse" !== a.pointerType) {
            a.preventDefault && a.preventDefault();
            var c = this.mi(a.pointerId),
            d = Ya();
            if (0 <= c) {
                var e = this.b.zb ? b: jQuery(this.b.canvas).offset(),
                c = this.touches[c];
                2 > d - c.time || c.update(d, a.pageX - e.left, a.pageY - e.top, a.width || 0, a.height || 0, a.pressure || 0)
            }
        }
    };
    a.yr = function(a) {
        if (a.pointerType !== a.MSPOINTER_TYPE_MOUSE && "mouse" !== a.pointerType) {
            a.preventDefault && nb(a) && a.preventDefault();
            var c = this.b.zb ? b: jQuery(this.b.canvas).offset(),
            d = a.pageX - c.left,
            c = a.pageY - c.top;
            Ya();
            this.le = this.touches.length;
            this.Mh = a.pointerId;
            this.touches.push(f(d, c, a.pointerId, this.le));
            this.b.Je = !0;
            this.b.trigger(Fc.prototype.j.hp, this);
            this.b.trigger(Fc.prototype.j.kp, this);
            this.xe = d;
            this.ye = c;
            this.b.trigger(Fc.prototype.j.jp, this);
            this.b.Je = !1
        }
    };
    a.hl = function(a, b) {
        if (a.pointerType !== a.MSPOINTER_TYPE_MOUSE && "mouse" !== a.pointerType) {
            a.preventDefault && nb(a) && a.preventDefault();
            var c = this.mi(a.pointerId);
            this.le = 0 <= c ? this.touches[c].xj: -1;
            this.Mh = 0 <= c ? this.touches[c].id: -1;
            this.b.Je = !0;
            this.b.trigger(Fc.prototype.j.gp, this);
            this.b.trigger(Fc.prototype.j.hm, this);
            0 <= c && (b || this.touches[c].hr(this, c), 100 > k.length && k.push(this.touches[c]), this.touches.splice(c, 1));
            this.b.Je = !1
        }
    };
    a.Br = function(a) {
        a.preventDefault && a.preventDefault();
        var c = Ya(),
        d,
        e,
        g,
        f;
        d = 0;
        for (e = a.changedTouches.length; d < e; d++) if (g = a.changedTouches[d], f = this.mi(g.identifier), 0 <= f) {
            var h = this.b.zb ? b: jQuery(this.b.canvas).offset();
            f = this.touches[f];
            2 > c - f.time || f.update(c, g.pageX - h.left, g.pageY - h.top, 2 * (g.cB || g.kB || g.WA || g.ZA || 0), 2 * (g.dB || g.lB || g.XA || g.$A || 0), g.PA || g.jB || g.VA || g.YA || 0)
        }
    };
    a.Cr = function(a) {
        a.preventDefault && nb(a) && a.preventDefault();
        var c = this.b.zb ? b: jQuery(this.b.canvas).offset();
        Ya();
        this.b.Je = !0;
        var d, e, g, h;
        d = 0;
        for (e = a.changedTouches.length; d < e; d++) if (g = a.changedTouches[d], h = this.mi(g.identifier), -1 === h) {
            h = g.pageX - c.left;
            var n = g.pageY - c.top;
            this.le = this.touches.length;
            this.Mh = g.identifier;
            this.touches.push(f(h, n, g.identifier, this.le));
            this.b.trigger(Fc.prototype.j.hp, this);
            this.b.trigger(Fc.prototype.j.kp, this);
            this.xe = h;
            this.ye = n;
            this.b.trigger(Fc.prototype.j.jp, this)
        }
        this.b.Je = !1
    };
    a.Sn = function(a, b) {
        a.preventDefault && nb(a) && a.preventDefault();
        this.b.Je = !0;
        var c, d, e;
        c = 0;
        for (d = a.changedTouches.length; c < d; c++) e = a.changedTouches[c],
        e = this.mi(e.identifier),
        0 <= e && (this.le = this.touches[e].xj, this.Mh = this.touches[e].id, this.b.trigger(Fc.prototype.j.gp, this), this.b.trigger(Fc.prototype.j.hm, this), b || this.touches[e].hr(this, e), 100 > k.length && k.push(this.touches[e]), this.touches.splice(e, 1));
        this.b.Je = !1
    };
    a.te = function() {
        return this.b.Vc && 0 === this.kl && 0 !== e ? 90 * e: this.kl
    };
    a.ei = function() {
        return this.b.Vc && 0 === this.ll && 0 !== g ? 90 * g: this.ll
    };
    a.Oi = function() {
        return this.b.Vc && 0 === this.ml && 0 !== c ? 90 * c: this.ml
    };
    a.xy = function(a) {
        n(a) || (this.Cr({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        }), this.Gn = !0)
    };
    a.yy = function(a) {
        this.Gn && !n(a) && this.Br({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        })
    };
    a.zy = function(a) {
        a.preventDefault && this.b.pq && !this.b.Yg && a.preventDefault();
        this.b.pq = !0;
        n(a) || (this.Sn({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        }), this.Gn = !1)
    };
    a.Ql = function() {
        var a, b, c, d = Ya();
        a = 0;
        for (b = this.touches.length; a < b; ++a) c = this.touches[a],
        c.time <= d - 50 && (c.vn = d),
        c.oy(this, a)
    };
    q.prototype.kp = function() {
        return ! 0
    };
    q.prototype.hm = function() {
        return ! 0
    };
    q.prototype.jp = function(a) {
        return a ? this.b.Ml(a, this.xe, this.ye) : !1
    };
    var P = [];
    q.prototype.Et = function(a) {
        if (!a) return ! 1;
        var b = a.U(),
        c = b.vc(),
        d,
        e,
        g,
        f,
        h,
        n;
        g = 0;
        for (f = c.length; g < f; g++) {
            var k = c[g];
            k.Ga();
            h = 0;
            for (n = this.touches.length; h < n; h++) if (e = this.touches[h], d = k.q.Rb(e.x, e.y, !0), e = k.q.Rb(e.x, e.y, !1), k.fc(d, e)) {
                P.push(k);
                break
            }
        }
        return P.length ? (b.ea = !1, Ca(b.d, P), a.dd(), A(P), !0) : !1
    };
    q.prototype.hp = function(a) {
        a = Math.floor(a);
        return a === this.le
    };
    q.prototype.gp = function(a) {
        a = Math.floor(a);
        return a === this.le
    };
    q.prototype.cu = function() {
        return ! 0
    };
    q.prototype.tu = function() {
        return ! 0
    };
    q.prototype.$t = function() {
        return ! 0
    };
    q.prototype.du = function(a) {
        return a ? this.b.Ml(a, this.xe, this.ye) : !1
    };
    q.prototype.uu = function(a) {
        return a ? this.b.Ml(a, this.xe, this.ye) : !1
    };
    q.prototype.au = function(a) {
        return a ? this.b.Ml(a, this.xe, this.ye) : !1
    };
    r.j = new q;
    p.prototype.sp = function(a, b) {
        var c = this.Vg;
        if (0 > c || c >= this.touches.length) a.G(0);
        else {
            var d, e, g, f, h;
            ia(b) ? (d = this.b.Ug(0), e = d.scale, g = d.Ud, f = d.rd, h = d.k, d.scale = 1, d.Ud = 1, d.rd = 1, d.k = 0, a.G(d.Rb(this.touches[c].x, this.touches[c].y, !0)), d.scale = e, d.Ud = g, d.rd = f, d.k = h) : (d = ja(b) ? this.b.Ug(b) : this.b.Bk(b)) ? a.G(d.Rb(this.touches[c].x, this.touches[c].y, !0)) : a.G(0)
        }
    };
    p.prototype.tp = function(a, b) {
        var c = this.Vg;
        if (0 > c || c >= this.touches.length) a.G(0);
        else {
            var d, e, g, f, h;
            ia(b) ? (d = this.b.Ug(0), e = d.scale, g = d.Ud, f = d.sd, h = d.k, d.scale = 1, d.Ud = 1, d.sd = 1, d.k = 0, a.G(d.Rb(this.touches[c].x, this.touches[c].y, !1)), d.scale = e, d.Ud = g, d.sd = f, d.k = h) : (d = ja(b) ? this.b.Ug(b) : this.b.Bk(b)) ? a.G(d.Rb(this.touches[c].x, this.touches[c].y, !1)) : a.G(0)
        }
    };
    r.I = new p
})();
function Gc(h) {
    this.b = h
} (function() {
    var h = Gc.prototype;
    h.za = function(d) {
        this.Ca = d;
        this.b = d.b
    };
    h.za.prototype.O = function() {};
    h.ja = function(d) {
        this.type = d;
        this.b = d.b
    };
    var f = h.ja.prototype;
    f.O = function() {
        this.ty = this.C[0];
        this.returnValue = "";
        var d = document.createElement("script");
        d.setAttribute("type", "text/javascript");
        d.setAttribute("src", this.ty);
        "undefined" != typeof d && document.getElementsByTagName("head")[0].appendChild(d)
    };
    f.Be = function() {};
    h.j = {};
    h.u = {};
    h.u.lt = function(d) {
        this.returnValue = "";
        try {
            this.returnValue = eval(d)
        } catch(f) {
            this.returnValue = f
        }
    };
    h.I = {};
    h.I.nA = function(d) {
        d.La(this.returnValue)
    }
})();
function Hc(h) {
    this.b = h
} (function() {
    function h() {}
    var f = Hc.prototype;
    f.za = function(d) {
        this.behavior = d;
        this.b = d.b
    };
    f.za.prototype.O = function() {};
    f.ja = function(d, f) {
        this.type = d;
        this.behavior = d.behavior;
        this.c = f;
        this.b = d.b
    };
    var d = f.ja.prototype;
    d.O = function() {
        var d = this.C[0];
        this.Mj = this.C[1];
        this.oi = this.C[2];
        this.Bv = 0 !== this.C[3];
        this.ro = 0 !== this.C[4];
        this.wb = Math.cos(this.c.k) * d;
        this.ab = Math.sin(this.c.k) * d;
        this.pg = this.c.x;
        this.qg = this.c.y;
        this.Wc = this.c.k;
        this.Tl = 0;
        this.enabled = 0 !== this.C[5]
    };
    d.Lb = function() {
        return {
            acc: this.Mj,
            g: this.oi,
            dx: this.wb,
            dy: this.ab,
            lx: this.pg,
            ly: this.qg,
            lka: this.Wc,
            t: this.Tl,
            e: this.enabled
        }
    };
    d.kc = function(d) {
        this.Mj = d.acc;
        this.oi = d.g;
        this.wb = d.dx;
        this.ab = d.dy;
        this.pg = d.lx;
        this.qg = d.ly;
        this.Wc = d.lka;
        this.Tl = d.t;
        this.enabled = d.e
    };
    d.Mb = function() {
        if (this.enabled) {
            var d = this.b.qi(this.c),
            f,
            h;
            this.c.k !== this.Wc && (this.ro && (f = Ta(0, 0, this.wb, this.ab), this.wb = Math.cos(this.c.k) * f, this.ab = Math.sin(this.c.k) * f), this.Wc = this.c.k);
            0 !== this.Mj && (f = Ta(0, 0, this.wb, this.ab), h = 0 === this.wb && 0 === this.ab ? this.c.k: Oa(0, 0, this.wb, this.ab), f += this.Mj * d, 0 > f && (f = 0), this.wb = Math.cos(h) * f, this.ab = Math.sin(h) * f);
            0 !== this.oi && (this.ab += this.oi * d);
            this.pg = this.c.x;
            this.qg = this.c.y;
            if (0 !== this.wb || 0 !== this.ab) if (this.c.x += this.wb * d, this.c.y += this.ab * d, this.Tl += Ta(0, 0, this.wb * d, this.ab * d), this.ro && (this.c.k = Oa(0, 0, this.wb, this.ab), this.c.Y(), this.Wc = this.c.k), this.c.Y(), this.Bv && (f = this.b.Ag(this.c))) this.b.Uy(this.c, f),
            f = Ta(0, 0, this.wb, this.ab),
            h = this.b.Fv(this.c, this.pg, this.qg),
            this.wb = Math.cos(h) * f,
            this.ab = Math.sin(h) * f,
            this.c.x += this.wb * d,
            this.c.y += this.ab * d,
            this.c.Y(),
            this.ro && (this.Wc = this.c.k = h, this.c.Y()),
            this.b.Qy(this.c, this.wb / f, this.ab / f, Math.max(2.5 * f * d, 30)) || this.b.Ry(this.c)
        }
    };
    f.j = new
    function() {};
    h.prototype.Vu = function(d) {
        var f = Oa(0, 0, this.wb, this.ab);
        this.wb = Math.cos(f) * d;
        this.ab = Math.sin(f) * d
    };
    h.prototype.Mu = function(d) {
        this.oi = d
    };
    h.prototype.Fu = function(d) {
        d = D(d);
        var f = Ta(0, 0, this.wb, this.ab);
        this.wb = Math.cos(d) * f;
        this.ab = Math.sin(d) * f
    };
    h.prototype.Lu = function(d) {
        this.enabled = 1 === d
    };
    f.u = new h;
    f.I = new
    function() {}
})();
function Ic(h) {
    this.b = h
} (function() {
    function h() {}
    function f() {}
    var d = Ic.prototype;
    d.za = function(d) {
        this.behavior = d;
        this.b = d.b
    };
    d.za.prototype.O = function() {};
    d.ja = function(d, f) {
        this.type = d;
        this.behavior = d.behavior;
        this.c = f;
        this.b = d.b
    };
    var n = d.ja.prototype;
    n.O = function() {
        this.fb = null;
        this.ol = -1;
        this.mode = this.Wc = this.Ol = this.ph = this.Oe = this.hj = 0;
        var d = this;
        this.$c || (this.mr = function(f) {
            d.Pn(f)
        });
        this.b.mm(this.mr)
    };
    n.Lb = function() {
        return {
            uid: this.fb ? this.fb.uid: -1,
            pa: this.hj,
            pd: this.Oe,
            msa: this.ph,
            tsa: this.Ol,
            lka: this.Wc,
            m: this.mode
        }
    };
    n.kc = function(d) {
        this.ol = d.uid;
        this.hj = d.pa;
        this.Oe = d.pd;
        this.ph = d.msa;
        this.Ol = d.tsa;
        this.Wc = d.lka;
        this.mode = d.m
    };
    n.qe = function() { - 1 === this.ol ? this.fb = null: this.fb = this.b.si(this.ol);
        this.ol = -1
    };
    n.Pn = function(d) {
        this.fb == d && (this.fb = null)
    };
    n.xg = function() {
        this.fb = null;
        this.b.Xy(this.mr)
    };
    n.Mb = function() {};
    n.Ql = function() {
        if (this.fb) {
            this.Wc !== this.c.k && (this.ph = La(this.ph + (this.c.k - this.Wc)));
            var d = this.c.x,
            f = this.c.y;
            if (3 === this.mode || 4 === this.mode) {
                var h = Ta(this.c.x, this.c.y, this.fb.x, this.fb.y);
                if (h > this.Oe || 4 === this.mode && h < this.Oe) f = Oa(this.fb.x, this.fb.y, this.c.x, this.c.y),
                d = this.fb.x + Math.cos(f) * this.Oe,
                f = this.fb.y + Math.sin(f) * this.Oe
            } else d = this.fb.x + Math.cos(this.fb.k + this.hj) * this.Oe,
            f = this.fb.y + Math.sin(this.fb.k + this.hj) * this.Oe;
            this.Wc = h = La(this.ph + (this.fb.k - this.Ol));
            0 !== this.mode && 1 !== this.mode && 3 !== this.mode && 4 !== this.mode || this.c.x === d && this.c.y === f || (this.c.x = d, this.c.y = f, this.c.Y());
            0 !== this.mode && 2 !== this.mode || this.c.k === h || (this.c.k = h, this.c.Y())
        }
    };
    h.prototype.Dt = function() {
        return !! this.fb
    };
    d.j = new h;
    f.prototype.zu = function(d, f) {
        if (d) {
            var h = d.lq(this.c);
            h && (this.fb = h, this.hj = Oa(h.x, h.y, this.c.x, this.c.y) - h.k, this.Oe = Ta(h.x, h.y, this.c.x, this.c.y), this.Wc = this.ph = this.c.k, this.Ol = h.k, this.mode = f)
        }
    };
    f.prototype.jv = function() {
        this.fb = null
    };
    d.u = new f;
    d.I = new
    function() {}
})();
function Jc(h) {
    this.b = h
} (function() {
    function h() {}
    function f() {}
    function d() {}
    var n = Jc.prototype;
    n.za = function(a) {
        this.behavior = a;
        this.b = a.b
    };
    n.za.prototype.O = function() {};
    n.ja = function(a, c) {
        this.type = a;
        this.behavior = a.behavior;
        this.c = c;
        this.b = a.b;
        this.cb = 0
    };
    var q = n.ja.prototype,
    p = 2 * Math.PI,
    r = Math.PI / 2,
    a = 3 * Math.PI / 2;
    q.O = function() {
        this.Qa = 1 === this.C[0];
        this.Af = this.C[1];
        this.Qo = this.C[2];
        this.he = this.C[3];
        this.he += Math.random() * this.C[4];
        0 === this.he ? this.cb = 0 : (this.cb = this.C[5] / this.he * p, this.cb += Math.random() * this.C[6] / this.he * p);
        this.Ib = this.C[7];
        this.Ib += Math.random() * this.C[8];
        this.lj = this.hg = this.ka = 0;
        5 === this.Af && (this.Ib = D(this.Ib));
        this.init()
    };
    q.Lb = function() {
        return {
            i: this.cb,
            a: this.Qa,
            mv: this.Af,
            w: this.Qo,
            p: this.he,
            mag: this.Ib,
            iv: this.ka,
            iv2: this.hg,
            r: this.lj,
            lkv: this.V,
            lkv2: this.Oa
        }
    };
    q.kc = function(a) {
        this.cb = a.i;
        this.Qa = a.a;
        this.Af = a.mv;
        this.Qo = a.w;
        this.he = a.p;
        this.Ib = a.mag;
        this.ka = a.iv;
        this.hg = a.iv2 || 0;
        this.lj = a.r;
        this.V = a.lkv;
        this.Oa = a.lkv2 || 0
    };
    q.init = function() {
        switch (this.Af) {
        case 0:
            this.ka = this.c.x;
            break;
        case 1:
            this.ka = this.c.y;
            break;
        case 2:
            this.ka = this.c.width;
            this.lj = this.c.height / this.c.width;
            break;
        case 3:
            this.ka = this.c.width;
            break;
        case 4:
            this.ka = this.c.height;
            break;
        case 5:
            this.ka = this.c.k;
            break;
        case 6:
            this.ka = this.c.opacity;
            break;
        case 7:
            this.ka = 0;
            break;
        case 8:
            this.ka = this.c.x,
            this.hg = this.c.y
        }
        this.V = this.ka;
        this.Oa = this.hg
    };
    q.me = function(b) {
        b = b % p;
        switch (this.Qo) {
        case 0:
            return Math.sin(b);
        case 1:
            return b <= r ? b / r: b <= a ? 1 - 2 * (b - r) / Math.PI: (b - a) / r - 1;
        case 2:
            return 2 * b / p - 1;
        case 3:
            return - 2 * b / p + 1;
        case 4:
            return b < Math.PI ? -1 : 1
        }
        return 0
    };
    q.Mb = function() {
        var a = this.b.qi(this.c);
        this.Qa && 0 !== a && (0 === this.he ? this.cb = 0 : (this.cb += a / this.he * p, this.cb = this.cb % p), this.Fz())
    };
    q.Fz = function() {
        switch (this.Af) {
        case 0:
            this.c.x !== this.V && (this.ka += this.c.x - this.V);
            this.c.x = this.ka + this.me(this.cb) * this.Ib;
            this.V = this.c.x;
            break;
        case 1:
            this.c.y !== this.V && (this.ka += this.c.y - this.V);
            this.c.y = this.ka + this.me(this.cb) * this.Ib;
            this.V = this.c.y;
            break;
        case 2:
            this.c.width = this.ka + this.me(this.cb) * this.Ib;
            this.c.height = this.c.width * this.lj;
            break;
        case 3:
            this.c.width = this.ka + this.me(this.cb) * this.Ib;
            break;
        case 4:
            this.c.height = this.ka + this.me(this.cb) * this.Ib;
            break;
        case 5:
            this.c.k !== this.V && (this.ka = La(this.ka + (this.c.k - this.V)));
            this.c.k = La(this.ka + this.me(this.cb) * this.Ib);
            this.V = this.c.k;
            break;
        case 6:
            this.c.opacity = this.ka + this.me(this.cb) * this.Ib / 100;
            0 > this.c.opacity ? this.c.opacity = 0 : 1 < this.c.opacity && (this.c.opacity = 1);
            break;
        case 8:
            this.c.x !== this.V && (this.ka += this.c.x - this.V),
            this.c.y !== this.Oa && (this.hg += this.c.y - this.Oa),
            this.c.x = this.ka + Math.cos(this.c.k) * this.me(this.cb) * this.Ib,
            this.c.y = this.hg + Math.sin(this.c.k) * this.me(this.cb) * this.Ib,
            this.V = this.c.x,
            this.Oa = this.c.y
        }
        this.c.Y()
    };
    q.Ar = function(a, c) {
        switch (this.Af) {
        case 2:
            this.ka *= c.width / a.width;
            this.lj = c.height / c.width;
            break;
        case 3:
            this.ka *= c.width / a.width;
            break;
        case 4:
            this.ka *= c.height / a.height
        }
    };
    h.prototype.Wo = function() {
        return this.Qa
    };
    n.j = new h;
    f.prototype.Du = function(a) {
        this.Qa = 1 === a
    };
    f.prototype.Tu = function(a) {
        this.he = a
    };
    f.prototype.Ru = function(a) {
        this.Ib = a;
        5 === this.Af && (this.Ib = D(this.Ib))
    };
    n.u = new f;
    d.prototype.kv = function(a) {
        a.G(this.me(this.cb) * this.Ib)
    };
    n.I = new d
})();
var Kc = [],
Lc = [],
Mc = [],
Nc = [],
Oc = [],
Pc = [],
Qc = [],
Wc = [],
Xc = [],
Yc = [];
function Zc(h) {
    return result = (h /= 1) < 1 / 2.75 ? 7.5625 * h * h + 0 : h < 2 / 2.75 ? 1 * (7.5625 * (h -= 1.5 / 2.75) * h + .75) + 0 : h < 2.5 / 2.75 ? 1 * (7.5625 * (h -= 2.25 / 2.75) * h + .9375) + 0 : 1 * (7.5625 * (h -= 2.625 / 2.75) * h + .984375) + 0
}
function $c(h, f) {
    return Math.round(h / f * 1E4)
}
function ad(h, f, d, n, q) {
    var p = 0;
    switch (h) {
    case 0:
        p = 1 * f / d + 0;
        break;
    case 1:
        p = 1 * (f /= d) * f + 0;
        break;
    case 2:
        p = -1 * (f /= d) * (f - 2) + 0;
        break;
    case 3:
        p = 1 > (f /= d / 2) ? .5 * f * f + 0 : -.5 * (--f * (f - 2) - 1) + 0;
        break;
    case 4:
        p = 1 * (f /= d) * f * f + 0;
        break;
    case 5:
        p = 1 * ((f = f / d - 1) * f * f + 1) + 0;
        break;
    case 6:
        p = 1 > (f /= d / 2) ? .5 * f * f * f + 0 : .5 * ((f -= 2) * f * f + 2) + 0;
        break;
    case 7:
        p = 1 * (f /= d) * f * f * f + 0;
        break;
    case 8:
        p = -1 * ((f = f / d - 1) * f * f * f - 1) + 0;
        break;
    case 9:
        p = 1 > (f /= d / 2) ? .5 * f * f * f * f + 0 : -.5 * ((f -= 2) * f * f * f - 2) + 0;
        break;
    case 10:
        p = 1 * (f /= d) * f * f * f * f + 0;
        break;
    case 11:
        p = 1 * ((f = f / d - 1) * f * f * f * f + 1) + 0;
        break;
    case 12:
        p = 1 > (f /= d / 2) ? .5 * f * f * f * f * f + 0 : .5 * ((f -= 2) * f * f * f * f + 2) + 0;
        break;
    case 13:
        q.Kc ? p = Oc[$c(f, d)] : p = -(Math.sqrt(1 - f * f) - 1);
        break;
    case 14:
        q.Kc ? p = Pc[$c(f, d)] : p = Math.sqrt(1 - (f - 1) * (f - 1));
        break;
    case 15:
        p = q.Kc ? Qc[$c(f, d)] : 1 > (f /= d / 2) ? -.5 * (Math.sqrt(1 - f * f) - 1) + 0 : .5 * (Math.sqrt(1 - (f -= 2) * f) + 1) + 0;
        break;
    case 16:
        q.Kc ? p = Wc[$c(f, d)] : (q = q.Ac, p = 1 * (f /= d) * f * ((q + 1) * f - q) + 0);
        break;
    case 17:
        q.Kc ? p = Xc[$c(f, d)] : (q = q.Ac, p = 1 * ((f = f / d - 1) * f * ((q + 1) * f + q) + 1) + 0);
        break;
    case 18:
        q.Kc ? p = Yc[$c(f, d)] : (q = q.Ac, p = 1 > (f /= d / 2) ? .5 * f * f * (((q *= 1.525) + 1) * f - q) + 0 : .5 * ((f -= 2) * f * (((q *= 1.525) + 1) * f + q) + 2) + 0);
        break;
    case 19:
        q.Kc ? p = Lc[$c(f, d)] : (p = q.Hg, h = q.vh, f /= d, 0 == h && (h = .3 * d), 0 == p || p < Math.abs(1) ? (p = 1, q = h / 4) : q = h / (2 * Math.PI) * Math.asin(1 / p), p = -(p * Math.pow(2, 10 * --f) * Math.sin(2 * (f * d - q) * Math.PI / h)) + 0);
        break;
    case 20:
        q.Kc ? p = Mc[$c(f, d)] : (p = q.Hg, h = q.vh, f /= d, 0 == h && (h = .3 * d), 0 == p || p < Math.abs(1) ? (p = 1, q = h / 4) : q = h / (2 * Math.PI) * Math.asin(1 / p), p = p * Math.pow(2, -10 * f) * Math.sin(2 * (f * d - q) * Math.PI / h) + 1);
        break;
    case 21:
        q.Kc ? p = Nc[$c(f, d)] : (p = q.Hg, h = q.vh, f /= d / 2, 0 == h && (h = .3 * d * 1.5), 0 == p || p < Math.abs(1) ? (p = 1, q = h / 4) : q = h / (2 * Math.PI) * Math.asin(1 / p), p = 1 > f ? -.5 * p * Math.pow(2, 10 * --f) * Math.sin(2 * (f * d - q) * Math.PI / h) + 0 : p * Math.pow(2, -10 * --f) * Math.sin(2 * (f * d - q) * Math.PI / h) * .5 + 1);
        break;
    case 22:
        p = q.Kc ? 1 - Kc[$c(d - f, d)] + 0 : 1 - Zc(d - f / d) + 0;
        break;
    case 23:
        p = q.Kc ? Kc[$c(f, d)] : Zc(f / d);
        break;
    case 24:
        p = q.Kc ? f < d / 2 ? .5 * (1 - Kc[$c(d - 2 * f, d)] + 0) + 0 : .5 * Kc[$c(2 * f - d, d)] + .5 : f < d / 2 ? .5 * (1 - Zc(d - 2 * f) + 0) + 0 : .5 * Zc((2 * f - d) / d) + .5;
        break;
    case 25:
        f = f / d / 2;
        p = 2 * f * f * (3 - 2 * f);
        break;
    case 26:
        f = (f / d + 1) / 2;
        p = 2 * f * f * (3 - 2 * f) - 1;
        break;
    case 27:
        f = f / d,
        p = f * f * (3 - 2 * f)
    }
    return n ? 1 - p: p
}
for (var bd = 0,
cd = 0,
dd = 0,
W = 0,
Z = 0,
ed = 0; 1E4 >= ed; ed++) W = ed / 1E4,
bd = (W /= 1) < 1 / 2.75 ? 7.5625 * W * W + 0 : W < 2 / 2.75 ? 1 * (7.5625 * (W -= 1.5 / 2.75) * W + .75) + 0 : W < 2.5 / 2.75 ? 1 * (7.5625 * (W -= 2.25 / 2.75) * W + .9375) + 0 : 1 * (7.5625 * (W -= 2.625 / 2.75) * W + .984375) + 0,
Kc[ed] = bd,
W = ed / 1E4,
dd = cd = 0,
W /= 1,
0 == dd && (dd = .3),
0 == cd || cd < Math.abs(1) ? (cd = 1, Z = dd / 4) : Z = dd / (2 * Math.PI) * Math.asin(1 / cd),
bd = -(cd * Math.pow(2, 10 * --W) * Math.sin(2 * (1 * W - Z) * Math.PI / dd)) + 0,
Lc[ed] = bd,
W = ed / 1E4,
dd = cd = 0,
W /= 1,
0 == dd && (dd = .3),
0 == cd || cd < Math.abs(1) ? (cd = 1, Z = dd / 4) : Z = dd / (2 * Math.PI) * Math.asin(1 / cd),
bd = cd * Math.pow(2, -10 * W) * Math.sin(2 * (1 * W - Z) * Math.PI / dd) + 1,
Mc[ed] = bd,
W = ed / 1E4,
dd = cd = 0,
W /= .5,
0 == dd && (dd = .3 * 1.5),
0 == cd || cd < Math.abs(1) ? (cd = 1, Z = dd / 4) : Z = dd / (2 * Math.PI) * Math.asin(1 / cd),
bd = 1 > W ? -.5 * cd * Math.pow(2, 10 * --W) * Math.sin(2 * (1 * W - Z) * Math.PI / dd) + 0 : cd * Math.pow(2, -10 * --W) * Math.sin(2 * (1 * W - Z) * Math.PI / dd) * .5 + 1,
Nc[ed] = bd,
W = ed / 1E4,
Oc[ed] = -(Math.sqrt(1 - W * W) - 1),
W = ed / 1E4,
Pc[ed] = Math.sqrt(1 - (W - 1) * (W - 1)),
W = ed / 1E4,
bd = 1 > (W /= .5) ? -.5 * (Math.sqrt(1 - W * W) - 1) + 0 : .5 * (Math.sqrt(1 - (W -= 2) * W) + 1) + 0,
Qc[ed] = bd,
W = ed / 1E4,
Z = 0,
0 == Z && (Z = 1.70158),
bd = 1 * (W /= 1) * W * ((Z + 1) * W - Z) + 0,
Wc[ed] = bd,
W = ed / 1E4,
Z = 0,
0 == Z && (Z = 1.70158),
bd = 1 * ((W = W / 1 - 1) * W * ((Z + 1) * W + Z) + 1) + 0,
Xc[ed] = bd,
W = ed / 1E4,
Z = 0,
0 == Z && (Z = 1.70158),
bd = 1 > (W /= .5) ? .5 * W * W * (((Z *= 1.525) + 1) * W - Z) + 0 : .5 * ((W -= 2) * W * (((Z *= 1.525) + 1) * W + Z) + 2) + 0,
Yc[ed] = bd;
function gd(h, f, d, n, q, p, r) {
    this.name = h;
    this.value = 0;
    this.Ah(n);
    this.Gl(q);
    this.Zf = d;
    this.Pa = f;
    this.duration = p;
    this.state = this.ba = 0;
    this.il = this.jl = this.gl = this.sh = !1;
    this.Oa = this.V = 0;
    this.hc = r;
    this.Pe = 1;
    this.ni = !1;
    this.Rc = [];
    this.Kq = 1;
    for (h = 0; 28 > h; h++) this.Rc[h] = {},
    this.Rc[h].Hg = 0,
    this.Rc[h].vh = 0,
    this.Rc[h].Gh = 0,
    this.Rc[h].Ac = 0,
    this.Rc[h].Kc = !0
}
gd.prototype = {};
gd.prototype.Ah = function(h) {
    this.ta = parseFloat(h.split(",")[0]);
    this.mb = parseFloat(h.split(",")[1]);
    this.Oa = this.V = 0
};
gd.prototype.Gl = function(h) {
    this.qa = parseFloat(h.split(",")[0]);
    this.Za = parseFloat(h.split(",")[1]);
    isNaN(this.Za) && (this.Za = this.qa)
};
gd.prototype.gm = function(h) {
    if (0 === this.state) return - 1;
    1 === this.state && (this.ba += h);
    2 === this.state && (this.ba -= h);
    3 === this.state && (this.state = 0);
    if (4 === this.state || 6 === this.state) this.ba += h * this.Pe;
    5 === this.state && (this.ba += h * this.Pe);
    return 0 > this.ba ? (this.ba = 0, 4 === this.state ? this.Pe = 1 : 6 === this.state ? (this.Pe = 1, this.ni = !1) : this.state = 0, this.il = !0, 0) : this.ba > this.duration ? (this.ba = this.duration, 4 === this.state ? this.Pe = -1 : 6 === this.state ? (this.Pe = -1, this.ni = !0) : 5 === this.state ? this.ba = 0 : this.state = 0, this.gl = !0, 1) : this.ni ? ad(this.Zf, this.duration - this.ba, this.duration, this.ni, this.Rc[this.Zf]) : ad(this.Zf, this.ba, this.duration, this.ni, this.Rc[this.Zf])
};
function hd(h) {
    this.b = h
} (function() {
    var h = hd.prototype;
    h.za = function(d) {
        this.behavior = d;
        this.b = d.b
    };
    h.za.prototype.O = function() {};
    h.ja = function(d, f) {
        this.type = d;
        this.behavior = d.behavior;
        this.c = f;
        this.b = d.b;
        this.cb = 0
    };
    var f = h.ja.prototype;
    f.O = function() {
        this.xh = this.C[0];
        this.Qa = 1 == this.xh || 2 == this.xh || 3 == this.xh || 4 == this.xh;
        this.Pa = this.C[1];
        this.Jm = this.C[2];
        this.target = this.C[3];
        this.Ll = this.C[4];
        this.Zl = !1;
        1 === this.Ll && (this.target = "relative(" + this.target + ")");
        this.duration = this.C[5];
        this.hc = 1 === this.C[6];
        this.value = 0;
        this.D = {};
        this.Ap(this.Pa, this.Jm, "current", this.target, this.duration, this.hc);
        1 === this.C[0] && this.wj(0);
        2 === this.C[0] && this.wj(2);
        3 === this.C[0] && this.wj(3);
        4 === this.C[0] && this.wj(4)
    };
    f.fe = function(d, f) {
        void 0 === f && (f = "current");
        var h = f.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
        f = f.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
        var p = this.value;
        if ("current" === f) switch (d) {
        case 0:
            h = this.c.x + "," + this.c.y;
            break;
        case 1:
            h = this.c.width + "," + this.c.height;
            break;
        case 2:
            h = this.c.width + "," + this.c.height;
            break;
        case 3:
            h = this.c.width + "," + this.c.height;
            break;
        case 4:
            h = Ha(this.c.k) + "," + Ha(this.c.k);
            break;
        case 5:
            h = 100 * this.c.opacity + "," + 100 * this.c.opacity;
            break;
        case 6:
            h = p + "," + p;
            break;
        case 7:
            h = this.c.x + "," + this.c.y;
            break;
        case 8:
            h = this.c.x + "," + this.c.y;
            break;
        case 9:
            h = void 0 !== this.c.Ma ? this.c.width / this.c.Ma.width + "," + this.c.height / this.c.Ma.height: "1,1"
        }
        if ("relative" === f.substring(0, 8)) {
            var r = f.match(/\((.*?)\)/);
            if (r) var a = parseFloat(r[1].split(",")[0]),
            b = parseFloat(r[1].split(",")[1]);
            isNaN(a) && (a = 0);
            isNaN(b) && (b = 0);
            switch (d) {
            case 0:
                h = this.c.x + a + "," + (this.c.y + b);
                break;
            case 1:
                h = this.c.width + a + "," + (this.c.height + b);
                break;
            case 2:
                h = this.c.width + a + "," + (this.c.height + b);
                break;
            case 3:
                h = this.c.width + a + "," + (this.c.height + b);
                break;
            case 4:
                h = Ha(this.c.k) + a + "," + (Ha(this.c.k) + b);
                break;
            case 5:
                h = 100 * this.c.opacity + a + "," + (100 * this.c.opacity + b);
                break;
            case 6:
                h = p + a + "," + p + a;
                break;
            case 7:
                h = this.c.x + a + "," + this.c.y;
                break;
            case 8:
                h = this.c.x + "," + (this.c.y + a);
                break;
            case 9:
                h = a + "," + b
            }
        }
        return h
    };
    f.Ap = function(d, f, h, p, r, a) {
        h = this.fe(d, h);
        p = this.fe(d, p);
        void 0 !== this.D["default"] && delete this.D["default"];
        this.D["default"] = new gd("default", d, f, h, p, r, a);
        this.D["default"].pf = 0
    };
    f.Lb = function() {
        JSON.stringify(this.D["default"]);
        return {
            playmode: this.xh,
            active: this.Qa,
            tweened: this.Pa,
            easing: this.Jm,
            target: this.target,
            targetmode: this.Ll,
            useCurrent: this.Zl,
            duration: this.duration,
            enforce: this.hc,
            value: this.value,
            tweenlist: JSON.stringify(this.D["default"])
        }
    };
    gd.Mt = function(d, f, h, p, r, a, b, c) {
        f = new gd(f, h, p, r, a, b, c);
        for (var g in d) f[g] = d[g];
        return f
    };
    f.kc = function(d) {
        var f = JSON.parse(d.tweenlist),
        f = gd.Mt(f, f.name, f.Pa, f.Zf, f.ta + "," + f.mb, f.qa + "," + f.Za, f.duration, f.hc);
        this.D["default"] = f;
        this.xh = d.playmode;
        this.Qa = d.active;
        this.Af = d.tweened;
        this.Jm = d.easing;
        this.target = d.target;
        this.Ll = d.targetmode;
        this.Zl = d.useCurrent;
        this.duration = d.duration;
        this.hc = d.enforce;
        this.value = d.value
    };
    f.mz = function(d) {
        1 < d && (d = 1);
        0 > d && (d = 0);
        for (var f in this.D) {
            var h = this.D[f];
            h.V = 0;
            h.Oa = 0;
            h.state = 3;
            h.ba = d * h.duration;
            var p = h.gm(0);
            this.Lo(h, p)
        }
    };
    f.wj = function(d) {
        for (var f in this.D) {
            var h = this.D[f];
            if (this.Zl) {
                var p = this.fe(h.Pa, "current"),
                r = this.fe(h.Pa, this.target);
                h.Ah(p);
                h.Gl(r)
            }
            0 === d && (h.ba = 1E-6, h.V = 0, h.Oa = 0, h.sh = !0, h.state = 1);
            1 === d && (h.state = h.Kq);
            if (2 === d || 4 === d) h.ba = 1E-6,
            h.V = 0,
            h.Oa = 0,
            h.sh = !0,
            2 == d && (h.state = 4),
            4 == d && (h.state = 6);
            3 === d && (h.ba = 1E-6, h.V = 0, h.Oa = 0, h.sh = !0, h.state = 5)
        }
    };
    f.vz = function(d) {
        for (var f in this.D) {
            var h = this.D[f];
            3 != h.state && 0 != h.state && (h.Kq = h.state);
            1 === d && (h.ba = 0);
            2 === d && (h.ba = h.duration);
            h.state = 3;
            var p = h.gm(0);
            this.Lo(h, p)
        }
    };
    f.bz = function(d) {
        for (var f in this.D) {
            var h = this.D[f];
            1 === d && (h.ba = h.duration, h.V = 0, h.Oa = 0, h.jl = !0);
            h.state = 2
        }
    };
    f.Lo = function(d, f) {
        if (0 === d.Pa) d.hc ? (this.c.x = d.ta + (d.qa - d.ta) * f, this.c.y = d.mb + (d.Za - d.mb) * f) : (this.c.x += (d.qa - d.ta) * f - d.V, this.c.y += (d.Za - d.mb) * f - d.Oa, d.V = (d.qa - d.ta) * f, d.Oa = (d.Za - d.mb) * f);
        else if (1 === d.Pa) d.hc ? (this.c.width = d.ta + (d.qa - d.ta) * f, this.c.height = d.mb + (d.Za - d.mb) * f) : (this.c.width += (d.qa - d.ta) * f - d.V, this.c.height += (d.Za - d.mb) * f - d.Oa, d.V = (d.qa - d.ta) * f, d.Oa = (d.Za - d.mb) * f);
        else if (2 === d.Pa) d.hc ? this.c.width = d.ta + (d.qa - d.ta) * f: (this.c.width += (d.qa - d.ta) * f - d.V, d.V = (d.qa - d.ta) * f);
        else if (3 === d.Pa) d.hc ? this.c.height = d.mb + (d.Za - d.mb) * f: (this.c.height += (d.Za - d.mb) * f - d.Oa, d.Oa = (d.Za - d.mb) * f);
        else if (4 === d.Pa) if (d.hc) {
            var h = d.ta + (d.qa - d.ta) * f;
            this.c.k = La(D(h))
        } else h = (d.qa - d.ta) * f - d.V,
        this.c.k = La(this.c.k + D(h)),
        d.V = (d.qa - d.ta) * f;
        else if (5 === d.Pa) d.hc ? this.c.opacity = (d.ta + (d.qa - d.ta) * f) / 100 : (this.c.opacity += ((d.qa - d.ta) * f - d.V) / 100, d.V = (d.qa - d.ta) * f);
        else if (6 === d.Pa) d.hc ? this.value = d.ta + (d.qa - d.ta) * f: (this.value += (d.qa - d.ta) * f - d.V, d.V = (d.qa - d.ta) * f);
        else if (7 === d.Pa) d.hc ? this.c.x = d.ta + (d.qa - d.ta) * f: (this.c.x += (d.qa - d.ta) * f - d.V, d.V = (d.qa - d.ta) * f);
        else if (8 === d.Pa) d.hc ? this.c.y = d.mb + (d.Za - d.mb) * f: (this.c.y += (d.Za - d.mb) * f - d.Oa, d.Oa = (d.Za - d.mb) * f);
        else if (9 === d.Pa) {
            var h = d.ta + (d.qa - d.ta) * f,
            p = d.mb + (d.Za - d.mb) * f;
            0 > this.c.width && (h = d.ta + (d.qa + d.ta) * -f);
            0 > this.c.height && (p = d.mb + (d.Za + d.mb) * -f);
            d.hc ? (this.c.width = this.c.Ma.width * h, this.c.height = this.c.Ma.height * p) : (0 > this.c.width ? (this.c.width = this.c.width / ( - 1 + d.V) * h, d.V = h + 1) : (this.c.width = this.c.width / (1 + d.V) * h, d.V = h - 1), 0 > this.c.height ? (this.c.height = this.c.height / ( - 1 + d.Oa) * p, d.Oa = p + 1) : (this.c.height = this.c.height / (1 + d.Oa) * p, d.Oa = p - 1))
        }
        this.c.Y()
    };
    f.Mb = function() {
        var d = this.b.qi(this.c),
        f = this.D["default"];
        0 !== f.state && (f.sh && (this.b.trigger(hd.prototype.j.ru, this.c), f.sh = !1), f.jl && (this.b.trigger(hd.prototype.j.pu, this.c), f.jl = !1), this.Qa = 1 == f.state || 2 == f.state || 4 == f.state || 5 == f.state || 6 == f.state, d = f.gm(d), this.Lo(f, d), f.gl && (this.b.trigger(hd.prototype.j.bu, this.c), f.gl = !1), f.il && (this.b.trigger(hd.prototype.j.ou, this.c), f.il = !1))
    };
    h.j = {};
    f = h.j;
    f.Wo = function() {
        return 0 !== this.D["default"].state
    };
    f.bA = function() {
        return 2 == this.D["default"].state
    };
    f.dt = function(d, f) {
        var h = this.D["default"];
        return ic(h.ba / h.duration, d, f)
    };
    f.gA = function(d, f) {
        var h = this.D["default"];
        this.Bj = ic(h.ba / h.duration, d, f);
        if (h = this.On != this.Bj && this.Bj) this.On = this.Bj;
        return h
    };
    f.ru = function() {
        return void 0 === this.D["default"] ? !1 : this.D["default"].sh
    };
    f.pu = function() {
        return void 0 === this.D["default"] ? !1 : this.D["default"].jl
    };
    f.bu = function() {
        return void 0 === this.D["default"] ? !1 : this.D["default"].gl
    };
    f.ou = function() {
        return void 0 === this.D["default"] ? !1 : this.D["default"].il
    };
    h.u = {};
    f = h.u;
    f.bv = function(d, f) {
        this.On = this.Bj = !1;
        this.Zl = 1 == f;
        this.wj(d)
    };
    f.rp = function(d) {
        this.vz(d)
    };
    f.Cu = function(d) {
        this.On = this.Bj = !1;
        this.bz(d)
    };
    f.mA = function(d) {
        this.mz(d)
    };
    f.Ku = function(d) {
        isNaN(d) || 0 > d || void 0 === this.D["default"] || (this.D["default"].duration = d)
    };
    f.xA = function(d) {
        void 0 !== this.D["default"] && (this.D["default"].hc = 1 === d)
    };
    f.zA = function(d) {
        void 0 !== this.D["default"] && (d = this.fe(this.D["default"].Pa, d), this.D["default"].Ah(d))
    };
    f.Wu = function(d, f, h) {
        if (void 0 !== this.D["default"] && !isNaN(h)) {
            var p = this.D["default"],
            r = h + "";
            this.Ll = f;
            var a = "",
            b = "";
            if (1 === f) {
                this.target = "relative(" + r + ")";
                switch (d) {
                case 0:
                    a = this.c.x + h;
                    b = p.Za;
                    break;
                case 1:
                    a = p.qa;
                    b = this.c.y + h;
                    break;
                case 2:
                    b = a = "" + Ha(this.c.k + D(h));
                    break;
                case 3:
                    b = a = "" + 100 * this.c.opacity + h;
                    break;
                case 4:
                    a = this.c.width + h;
                    b = p.Za;
                    break;
                case 5:
                    a = p.qa;
                    b = this.c.height + h;
                    break;
                case 6:
                    b = a = h
                }
                r = a + "," + b
            } else {
                switch (d) {
                case 0:
                    a = h;
                    b = p.Za;
                    break;
                case 1:
                    a = p.qa;
                    b = h;
                    break;
                case 2:
                    b = a = h;
                    break;
                case 3:
                    b = a = h;
                    break;
                case 4:
                    a = h;
                    b = p.Za;
                    break;
                case 5:
                    a = p.qa;
                    b = h;
                    break;
                case 6:
                    b = a = h
                }
                this.target = r = a + "," + b
            }
            d = this.fe(this.D["default"].Pa, "current");
            r = this.fe(this.D["default"].Pa, r);
            p.Ah(d);
            p.Gl(r)
        }
    };
    f.CA = function(d) {
        void 0 !== this.D["default"] && (this.D["default"].Pa = d)
    };
    f.uA = function(d) {
        void 0 !== this.D["default"] && (this.D["default"].Zf = d)
    };
    f.vA = function(d, f, h, p, r) {
        void 0 !== this.D["default"] && (this.D["default"].Rc[d].Kc = !1, this.D["default"].Rc[d].Hg = f, this.D["default"].Rc[d].vh = h, this.D["default"].Rc[d].Gh = p, this.D["default"].Rc[d].Ac = r)
    };
    f.oA = function() {
        void 0 !== this.D["default"] && (this.D["default"].Kc = !0)
    };
    f.DA = function(d) {
        var f = this.D["default"];
        this.value = d;
        6 === f.Pa && f.Ah(this.fe(f.Pa, "current"))
    };
    f.AA = function(d, f, h, p, r) {
        if (void 0 === this.D["default"]) this.Ap(d, f, initial, h, p, r);
        else {
            var a = this.D["default"];
            a.Pa = d;
            a.Zf = f;
            a.Ah(this.fe(d, "current"));
            a.Gl(this.fe(d, h));
            a.duration = p;
            a.hc = 1 === r
        }
    };
    h.I = {};
    h = h.I;
    h.GA = function(d) {
        var f = "N/A";
        switch (this.D["default"].state) {
        case 0:
            f = "paused";
            break;
        case 1:
            f = "playing";
            break;
        case 2:
            f = "reversing";
            break;
        case 3:
            f = "seeking"
        }
        d.La(f)
    };
    h.lA = function(d) {
        d.G(this.D["default"].ba / this.D["default"].duration)
    };
    h.it = function(d) {
        d.G(this.D["default"].duration)
    };
    h.IA = function(d) {
        var f = this.D["default"],
        h = "N/A";
        switch (f.Pa) {
        case 0:
            h = f.qa;
            break;
        case 1:
            h = f.Za;
            break;
        case 2:
            h = f.qa;
            break;
        case 3:
            h = f.qa;
            break;
        case 4:
            h = f.qa;
            break;
        case 5:
            h = f.Za;
            break;
        case 6:
            h = f.qa
        }
        d.G(h)
    };
    h.kv = function(d) {
        d.G(this.value)
    };
    h.KA = function(d, f, h, p, r) {
        p = 1 < p ? 1 : p;
        r = ad(r, 0 > p ? 0 : p, 1, !1, !1);
        d.G(f + r * (h - f))
    }
})();
function rc() {
    return [tc, vc, uc, Gc, sc, zc, Ac, R, Ec, Dc, Fc, hd, Jc, Hc, Ic, G.prototype.j.yt, G.prototype.j.dp, tc.prototype.u.Jt, G.prototype.j.mt, tc.prototype.I.Vo, Ec.prototype.u.Ju, tc.prototype.I.Ts, G.prototype.I.my, Ec.prototype.j.To, Ec.prototype.u.np, R.prototype.I.sp, R.prototype.I.tp, Ec.prototype.u.Xu, R.prototype.j.Rh, G.prototype.u.lv, hd.prototype.u.bv, sc.prototype.j.Kj, G.prototype.u.Au, G.prototype.u.Bu, G.prototype.u.Yu, sc.prototype.I.wu, Fc.prototype.j.Et, R.prototype.u.op, Fc.prototype.j.hm, G.prototype.j.Lt, G.prototype.u.pt, G.prototype.u.Qu, G.prototype.j.Zs, G.prototype.I.Ez, G.prototype.u.Ps, R.prototype.j.To, R.prototype.j.yu, R.prototype.I.Ss, zc.prototype.u.Ou, G.prototype.j.et, R.prototype.j.Gt, G.prototype.u.cv, G.prototype.I.wz, zc.prototype.u.Vs, R.prototype.u.Nu, R.prototype.u.mp, R.prototype.u.Pt, G.prototype.j.Kt, G.prototype.I.gy, Dc.prototype.u.qp, sc.prototype.u.CallFunction, R.prototype.j.zt, Gc.prototype.u.lt, zc.prototype.u.Ys, zc.prototype.j.$o, zc.prototype.u.ot, zc.prototype.j.bp, zc.prototype.I.Ht, zc.prototype.j.eu, zc.prototype.j.cp, G.prototype.I["int"], G.prototype.I.Dz, G.prototype.u.gt, G.prototype.I.hy, hd.prototype.u.rp, R.prototype.u.Eu, R.prototype.u.Zu, R.prototype.u.Su, R.prototype.u.Hu, R.prototype.j.bt, G.prototype.j.gv, G.prototype.j.nt, G.prototype.I.find, R.prototype.u.Qt, R.prototype.I.Qs, R.prototype.u.np, R.prototype.I.qt, R.prototype.I.tt, R.prototype.j.Ct, R.prototype.u.Xo, Ec.prototype.u.Xo, G.prototype.I.Jz, G.prototype.j.Uo, G.prototype.j.kt, G.prototype.I.Qz, Dc.prototype.u.em, G.prototype.I.floor, Dc.prototype.I.jt, Dc.prototype.j.Zo, Dc.prototype.j.Ft, G.prototype.I.random, G.prototype.I.fy, R.prototype.u.ht, Ec.prototype.u.mp, R.prototype.j.Yo, G.prototype.u.Pu, G.prototype.I.ey, R.prototype.j.$s, sc.prototype.j.ct, uc.prototype.u.Play, R.prototype.u.Uu, R.prototype.I.Opacity, G.prototype.I.Lp, R.prototype.u.pp, hd.prototype.u.Wu, Ic.prototype.u.zu, R.prototype.u.Gu, Ec.prototype.u.lp, R.prototype.u.lp, hd.prototype.j.dt, hd.prototype.u.Ku, Jc.prototype.j.Wo, Jc.prototype.u.Du, Jc.prototype.u.Ru, G.prototype.I.max, Jc.prototype.u.Tu, R.prototype.I.hv, R.prototype.j.At, R.prototype.j.xu, Hc.prototype.u.Lu, Hc.prototype.u.Fu, R.prototype.j.Zt, Ic.prototype.u.jv, R.prototype.u.Ot, Hc.prototype.u.Vu, R.prototype.j.Bt, Hc.prototype.u.Mu, R.prototype.j.ut, Ic.prototype.j.Dt]
};